码迷,mamicode.com
首页 > 编程语言 > 详细

直接插入排序&希尔排序

时间:2016-08-11 20:38:15      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

1.直接插入排序

  时间复杂度O(n2)

  工作原理:

  通过构建有序序列,对于未排序数据,在已排序的序列中,从后向前扫描,找到相应的位置并插入。

  插入排序在实现上,在从后向前扫描的过程中,需要反复把已排序元素逐步向后移动为最新元素提供插入空间

  技术分享

技术分享

//直接插入排序
public static void InsertSort(int[] a,int n){
	int i,j,t;
	for(i=1;i<n;i++){
		t=a[i];//取出一个未排序的数据
		for(j=i-1;j>=0&&t<a[j];--j){//在已排序的序列这查找位置,t<a[j],说明要把t插入到前面去
			a[j+1]=a[j];//向后移动数据
		}
			a[j+1]=t;//将临时元素插入到腾出的位置中
	}
}

2.希尔排序

 

直接插入排序&希尔排序

标签:

原文地址:http://www.cnblogs.com/GumpYan/p/5762319.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!