我是靠谱客的博主 聪明帽子,最近开发中收集的这篇文章主要介绍经典排序算法——直接插入排序算法直接插入排序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

直接插入排序

每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。

直接插入排序是由两层嵌套循环组成的。外层循环标识并决定待比较的数值。内层循环为待比较数值确定其最终位置。直接插入排序是将待比较的数值与它的前一个数值进行比较,所以外层循环是从第二个数值开始的。当前一数值比待比较数值大的情况下继续循环比较,直到找到比待比较数值小的并将待比较数值置入其后一位置,结束该次循环。

时间复杂度On^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 


最后

以上就是聪明帽子为你收集整理的经典排序算法——直接插入排序算法直接插入排序的全部内容,希望文章能够帮你解决经典排序算法——直接插入排序算法直接插入排序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部