标签:
【基本原理】
【举例】
待排序数组
【38,65,97,76,13,27,49】
排序过程
第一趟插入38:【38,65,97,76,13,27,49】
第二趟插入65:【38,65,97,76,13,27,49】
第三趟插入97:【38,65,97,76,13,27,49】
第四趟插入76:【38,65,76,97,13,27,49】
第五趟插入13:【13,38,65,76,97,27,49】
第六趟插入27:【13,27,38,65,76,97,49】
第七趟插入49:【13,27,38,49,65,76,97】
【代码实现】
package com.sort; public class TestInsertSort { public static int[] insertSort(int[] a){ int length=a.length; int i,j,tmp; for(i=1;i<length;i++){ tmp=a[i]; //取出一个未排序的数据 for(j=i-1;j>=0&&a[j]>tmp;j--){ //在排序序列中查找位置 a[j+1]=a[j]; //数据向后移动,无须担心被覆盖,因为tmp以保存第一个被覆盖的数据 } a[j+1]=tmp; //插入数据,因为上面的for循环最后执行了一次j--,所以赋值时a[j+1] } return a; } public static void main(String[] args){ int a[]={2,9,0,8,7,1,5,4,3,6}; a=insertSort(a); for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } } }
标签:
原文地址:http://www.cnblogs.com/HigginCui/p/5702104.html