主题:排序算法合集(如有别的,欢迎大家完善)
asddg67
[专家分:1580] 发布于 2006-05-08 20:58:00
void insertsort(int a[],int n) //简单插入排序
{
int i,j,k,t;
for(i=1;i<n;i++)
for(j=0;j<i;j++)
if(a[j]>a[i])
{
t=a[i];
for(k=i;k>j;k--) a[k]=a[k-1];
a[j]=t;
break;
}
}
void InsertSort(int a[],int n) //折半插入排序
{
int i,j,temp,low,high,m;
for(i=1;i<n;i++)
{
temp=a[i];
low=0;high=i-1;
while(low<=high)
{
m=(low+high)/2;
if(temp<a[m]) high=m-1;
else low=m+1;
}
for(j=i-1;j>=low;j--) a[j+1]=a[j];
a[low]=temp;
}
}
typedef struct{ //表插入排序(不需要移动元素 )
int a;
int next; //指针,指向比a大一点的数
}slnode;
void arrange(slnode r[],int n)
{
int i,p,q;
slnode t;
p=r[0].next;
for(i=1;i<n;i++)
{
while(p<i) p=r[p].next;
q=r[p].next; //必须有
if(p!=i)
{
t=r[p];r[p]=r[i];r[i]=t;
r[i].next=p;
}
p=q;
}
}
回复列表 (共22个回复)
11 楼
nameizhi [专家分:70] 发布于 2006-06-01 17:14:00
[em2]谢谢!!!实用。
12 楼
蹦蹦的笨笨 [专家分:430] 发布于 2006-06-09 10:44:00
knuth的大作中提到的排序方法至少有25种。
想问你:
knuth是哪个作者?麻烦给详细介绍一下,好吗?感谢先!
13 楼
西门半月 [专家分:40] 发布于 2006-06-28 17:08:00
好
14 楼
benven [专家分:0] 发布于 2007-01-02 21:25:00
辛苦拉 佩服!
15 楼
vcacm [专家分:1500] 发布于 2007-04-07 07:54:00
up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!
up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!up!
up!up!up!up!up!up!up!up!up!up!up!up!
16 楼
zhaoyg [专家分:4790] 发布于 2007-04-07 09:38:00
狂顶!!!!
对于我这样的初学者来说从中能学到不少东西。
谢谢LZ
17 楼
diaoxue [专家分:600] 发布于 2007-04-07 12:46:00
没看过这么好的贴!!!!
18 楼
xiaogift [专家分:240] 发布于 2007-04-07 13:06:00
写得完的呀,希尔,基数,选择,冒泡,归并,堆,计数,快速...每种还可以细分,加油呀
19 楼
zhaoqidi [专家分:40] 发布于 2007-04-16 18:40:00
你这算法效率实在太低了,用在游戏里面贴图那还卡死啊
20 楼
bpttc [专家分:8790] 发布于 2007-04-16 18:44:00
又把老帖翻出来了?
我来回复