算法是一门很深的学问,也是程序员必学的一项技能,其中最为简单和出名的当属排序算法。算法尤其是在游戏行业,或者数据挖掘等都有广泛的应用。说道算法,就不能不说排序算法,常见的排序算法有8中,如下:

上篇我们讲了快速排序,本篇小编将带领大家学习直接插入排序。
基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。
直接插入排序分步解析如下:

排序实现代码如下:
public class InsertSort{
public void insertSort(int[] array){
for(int i=1;i<array.length;i++){ //第0位独自作为有序数列,从第1位开始向后遍历
if(array[i]<array[i-1]){ //0~i-1位为有序,若第i位小于i-1位,继续寻位并插入,否则认为0~i位也是有序的,忽略此次循环,相当于continue
int temp=array[i];//保存第i位的值
int k = i - 1;
for(int j=k;j>=0 && temp<array[j];j--){ //从第i-1位向前遍历并移位,直至找到小于第i位值停止
array[j+1]=array[j];
k--;
}
array[k+1]=temp;//插入第i位的值
}
}
}
public static void printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]);
}
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。原文地址http://www.xttblog.com/?p=437

: » 排序算法之直接插入排序原理与实战
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/251434.html