概述
直接插入排序
每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。
直接插入排序是由两层嵌套循环组成的。外层循环标识并决定待比较的数值。内层循环为待比较数值确定其最终位置。直接插入排序是将待比较的数值与它的前一个数值进行比较,所以外层循环是从第二个数值开始的。当前一数值比待比较数值大的情况下继续循环比较,直到找到比待比较数值小的并将待比较数值置入其后一位置,结束该次循环。
时间复杂度:O(n^2)。
如下面的例子:
下面我们用 java 来实现一下它。
/*
* 直接插入排序
* 时间复杂度 :O(n^2)
* 稳定:没有跳跃式的比较
*/
public static void insertSort(int[] array){
int temp = 0,j;
for(int i = 1;i < array.length;i++){
temp = array[i];//从i号位置开始进行排序。
for(j =i-1;j >= 0;j--){
if(array[j] > temp){
array[j+1] = array[j];
} else {//每次排序过后前面已经有序,找到第一个比temp小的。
break;
}
}
array[j+1] = temp;
}
}
测试:
public static void main(String[] args){
int[] array = {23,31,12,21,3,1,5};
insertSort(array);
show(array);
}
结果为:1 3 5 12 21 23 31
最后
以上就是聪明帽子为你收集整理的经典排序算法——直接插入排序算法直接插入排序的全部内容,希望文章能够帮你解决经典排序算法——直接插入排序算法直接插入排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复