插入排序法
1.原理
默认第一个元素已排序,后面每个元素各与前面元素依次进行比较,直到不需要交换位置,根据需求插入位置(升序或降序)。
画图解释如下:
第一轮比较:

第二轮比较:

第三轮比较:

第四轮比较:

结论:n个元素,要进行n-1轮比较,每轮比较次数不定。时间复杂度为O(n^2)。
2.核心代码如下:
void insertSort(int[] arr) { int temp; //进行比较轮次,从第二个元素开始 for (int i = 1; i < arr.length; i++) { //每轮与前面元素比较次数,遇到不用交换就跳出 for(int j=i;j>0;j--){ if(arr[j]<arr[j-1]){ temp=arr[j]; arr[j]=arr[j-1]; arr[j-1]=temp; }else { break; } } } }

浙公网安备 33010602011771号