序之希尔排序
希尔排序算法因科学家 Donald L. Shell 得名, 它是基于插入排序的, 但增加了一个特性,即增量排序,它在有间隔的元素中进行插入排序,然后减小间隔,直到为间隔1。 比如说先对下标为0,4.8的元素进行排序,然后对下标为 1,5,9的元素排序,接下来减小间隔, 如对 0,1 排序。
插入排序对基本有序的数组排序效率非常高,然而通常情况下, 如果有小的元素在最后, 则它几乎要移动 N 个位置才能来到前面, 平均也要 N/2 次,对于 N 个数来说, 移动的次数太多了。希尔排序使用增量,让元素可以大跨度地移动, 而不是一个一个地往前移, 那么经过很少次...
- [crazyman] 以前还真没注意,看来光图嘴痛快是不行了。 01/18 15:48
- [black] 爱让我们变强 05/24 10:19
- [mouse] “救一个人,就等于救了全世界。”这是电影《辛德勒的名单》中的一句台词。 05/21 09:49
- [black] 不抛弃,也不放弃 05/20 12:41
- [li4096255] 你太幸运了. 我"跟"你了. 不要都不行. 04/28 09:44
- [hxqt12] 我只背的下来第一行。 03/06 14:40
- [startasm] 想致富先修路,呵呵 科技! 02/19 11:47
- [startasm] 先不说国内打假球还是国外打假球,也不说是否表现的太假了。首先打假球就违背了体育运动的宗旨,中国举办奥 02/16 10:58
- [starrynight] 中国球员的水平打假球都打得如此显山露水 我很郁闷 02/15 20:03
- [mouse] 早用上了,还不错:-) 01/20 20:27
- [startasm] 相互携手;-) 12/24 11:01
- [gocker] 我来给你留第一次言吧 希望大家加个好友,交个朋友! 共同学习进步!! 12/21 10:06
[2008-10-15 15:20] [转_讲解]希尔排序法
阅读全文 |
评论次数(0) |
浏览次数(852) |
所属类型(算法)
[2008-10-15 15:00] 二分查找算法
1、递归方法实现:
/*在下界为low,上界为high的数组a中折半查找数据元素x*/
int BSearch(elemtype a[],elemtype x,int low,int high)
{
int mid;
if(low>high) return -1;
mid=(low+high)/2;
if(x==a[mid]) return mid;
if(x<a[mid]) return(BSearch(a,x,low,mid-1));
else return(BSearch(a,x,mid+1,high));
}
2、非递归方法实现:
int BSearch(e...
/*在下界为low,上界为high的数组a中折半查找数据元素x*/
int BSearch(elemtype a[],elemtype x,int low,int high)
{
int mid;
if(low>high) return -1;
mid=(low+high)/2;
if(x==a[mid]) return mid;
if(x<a[mid]) return(BSearch(a,x,low,mid-1));
else return(BSearch(a,x,mid+1,high));
}
2、非递归方法实现:
int BSearch(e...
阅读全文 |
评论次数(0) |
浏览次数(680) |
所属类型(算法)
页码数(1):
1