zoukankan      html  css  js  c++  java
  • 直接插入排序(java实现)

    这几天看排序算法,网上大多数排序算法的解释都是“过于专业”,导致一时半会看不明白到底在说什么玩意。现在总结下几大排序算法(java实现)

    1.直接插入排序

    说的简单点,就是一组无序序列{A1,A2,........An} 先取出A1,然后从A2与A1比较,比较完之后序列状况是{A1,A2}{A3..........An},  其中{A1,A2}有序, 然后取出A3 ,放到{A1,A2}有序序列合适位置,导致{A1,A2,A3}{A4........An}。重复这个过程,直到取出An放入{A1,A2........An-1}有序序列中。

    java实现代码如下(利用LinkedList作为辅助序列)

        /**
         * 直接插入排序
         * @param arrays 需要排序的序列
         */
        public static void sort(int[] arrays){
            if(arrays == null || arrays.length == 0){
                return;
            }
            
            //辅助序列
            LinkedList<Integer> list = new LinkedList<Integer>();
            //先取出无序序列的第一个元素
            list.add(arrays[0]);
            //从第二个元素依次遍历,放入辅助序列(有序)的合适位置
            for(int index = 1; index<arrays.length; index++){
                for(int listIndex = 0;listIndex<list.size();listIndex++){
                    //一直遍历,直到找到比自己大的数,放在这个数前面
                    if(arrays[index] < list.get(listIndex)){
                        list.add(listIndex, arrays[index]);
                        break;
                    }
                    //如果遍历到末尾还没有找到比自己大的数,直接放最后一个位置
                    if(listIndex==list.size()-1 && list.get(listIndex) < arrays[index]){
                        list.add(arrays[index]);
                    }
                }
            }
            for(int i = 0; i<list.size();i++){
                arrays[i] = list.get(i);
            }
        }
  • 相关阅读:
    Python异常处理详解
    Python with/as和contextlib上下文管理使用说明
    Python面向对象基础:编码细节和注意事项
    搞懂Python的类和对象名称空间
    Python丢弃返回值
    Python面向对象基础:设置对象属性
    python的dir()和__dict__属性的区别
    Go Web:RESTful web service示例
    Go处理json数据
    json数据格式说明
  • 原文地址:https://www.cnblogs.com/hithlb/p/3597674.html
Copyright © 2011-2022 走看看