直接插入排序是指将一个个待排序的元素插入到前面已经排好序的有序序列中去,直到插完所有元素为止,主要步骤如下:
1)先假设第一个元素已经排好序。
2)然后依次取出还需要进行排序的下一个元素,也就是排序完成的元素后面的下一个元素,取出下一个元素,设为待插入元素,在已经排序的元素序列中从后向前扫描,如果该元素(已排序)大于待插入元素,将该元素移到下一位置。
3)重复步骤2,直到找到已排序的元素小于或者等于待排序元素的位置,插入元素。
4)重复步骤2、步骤3,完成排序。
例如:
importjava.util.Arrays;publicclassMain{publicstaticvoidmain(Stringargs[]){int[]arr=newint[]{17,62,39,52,8,24};for(inti=1;i<arr.length;i++){//从第二个元素开始比较inttemp=arr[i];//记录当前元素for(intj=i-1;j>=0;j--){//从最后一个元素开始比较if(arr[j]>temp){//如果比当前元素大arr[j+1]=arr[j];//从该处往后所有元素向后移动一位arr[j]=temp;//将当前元素插入到arr[j]中}}}for(inti=0;i<arr.length;i++){System.out.print(arr[i]+);}}}
运行结果如下:
81724395262