简单排序——直接插入排序

来源:互联网 发布:人工智能类电影 编辑:程序博客网 时间:2024/06/06 15:00

基本思想:
对于给定的一组初始数据,假定其第一个数据为有序序列,从第二个数据开始为无序序列,接着从第二个数据开始,依次和之前有序序列比较,插入到合适位置。

代码实现:

public static void main(String[] args) {        int[] array = new int[]{1,3,6,2,8,7,10,4,9,5};        insertSort(array);//插入排序    }public static void insertSort(int arr[]){        for(int i=1; i<arr.length; i++){            if(arr[i-1]>arr[i]){                int temp = arr[i];                int j = i;                while(j>0 && arr[j-1]>temp){                    arr[j] = arr[j-1];//当要插入的元素小于第j-1个元素,就将第j-1个元素向后移动                    j--;                }                arr[j] = temp;            }            System.out.print("第"+ i+ "次排序结果:");            for(int k=0; k<arr.length; k++){                System.out.print(" "+arr[k]+" ");            }            System.out.print("\n");        }    }

执行结果:

第1次排序结果: 1  3  6  2  8  7  10  4  9  5 第2次排序结果: 1  3  6  2  8  7  10  4  9  5 第3次排序结果: 1  2  3  6  8  7  10  4  9  5 第4次排序结果: 1  2  3  6  8  7  10  4  9  5 第5次排序结果: 1  2  3  6  7  8  10  4  9  5 第6次排序结果: 1  2  3  6  7  8  10  4  9  5 第7次排序结果: 1  2  3  4  6  7  8  10  9  5 第8次排序结果: 1  2  3  4  6  7  8  9  10  5 第9次排序结果: 1  2  3  4  5  6  7  8  9  10 
原创粉丝点击