插入排序的思想就和玩扑克是的摸牌一样,摸到一张牌放手上,再摸一 张和之前的比较,大的就放后面,小的就放前面。 一个数列我们把它分为两个区,一个是已经排序的区,一个是乱序区,选取第 一个元素出来作为排序区的元素,然后从第二个元素开始往后作为乱序区,从 第二个元素开始(并把这个元素复制出来叫做下标元素),分别和排序区的元素比较大小,如果这个元素比排序区的元 素小,则把排序区的元素依次往后一位,然后把下标元素复制进空出来的位 置,这样就完成一次排序,直到排序完成。 下面看代码: int[] a = new int[10]{2,443,34,231,34,34,4,5,43,4}; for(int i = 1;i<a.length;i++){ int index = a[i]; for(int j = i-1;j>=0;j--){ if(index<a[j]&&i==1||index<a[j]&&index>a[j-1]){ a[j+1]=a[j]; a[j] = index; } else if(index>=a[j]){ break; } }