数据结构 -希尔排序
2007-01-23 15:22
405 查看
//希尔插入排序
void main( )
{
int n=9;
int R[10]={50,32,65,76,90,16,23,85,07,50};
int i,j,h,t=1,temp,d=1;
while(d>0)
{
d=n/2;
if(d>0)
for(i=d;i<10;i++)
{
if(R[i]<R[i-d])
{
temp=R[i];
j=i-d;
do {
R[j+d]=R[j];
j=j-d;
}while(j>=0&&temp<R[j]);
R[j+d]=temp;
}
for(int a=0;a<10;a++)
printf("%d ",R[a]);
printf(" %d /n",i);
}
printf("/n");
n=d;
}
//希尔交换排序
void main()
{
int n=9;
int r[10]={50,32,65,76,90,16,23,85,07,50};
int i,j,h,temp,d=1;
while(d>0)
{
d=n/2;
if(d>0)
for(j=d;j<10;j++)
{
h=j-d;
while(h>=0)
{
if(r[h]>r[h+d])
{
temp=r[h];
r[h]=r[h+d];
r[h+d]=temp;
h=h-d;
}
else h=-1;
}
for(int a=0;a<10;a++)
printf("%d ",r[a]);
printf("/n");
}
n=d;
}
void main( )
{
int n=9;
int R[10]={50,32,65,76,90,16,23,85,07,50};
int i,j,h,t=1,temp,d=1;
while(d>0)
{
d=n/2;
if(d>0)
for(i=d;i<10;i++)
{
if(R[i]<R[i-d])
{
temp=R[i];
j=i-d;
do {
R[j+d]=R[j];
j=j-d;
}while(j>=0&&temp<R[j]);
R[j+d]=temp;
}
for(int a=0;a<10;a++)
printf("%d ",R[a]);
printf(" %d /n",i);
}
printf("/n");
n=d;
}
//希尔交换排序
void main()
{
int n=9;
int r[10]={50,32,65,76,90,16,23,85,07,50};
int i,j,h,temp,d=1;
while(d>0)
{
d=n/2;
if(d>0)
for(j=d;j<10;j++)
{
h=j-d;
while(h>=0)
{
if(r[h]>r[h+d])
{
temp=r[h];
r[h]=r[h+d];
r[h+d]=temp;
h=h-d;
}
else h=-1;
}
for(int a=0;a<10;a++)
printf("%d ",r[a]);
printf("/n");
}
n=d;
}
相关文章推荐
- 第十六周--数据结构--项目一-- 插入排序之希尔排序
- 一步步学习数据结构和算法之希尔排序效率分析及java实现
- 算法与数据结构——选择,插入,希尔排序
- 小蚂蚁学习数据结构(36)——插入排序中的希尔排序
- 数据结构学习10——直接插入排序与希尔排序
- 【数据结构和算法】排序算法之四:希尔排序
- 数据结构学习笔记 --- 排序(插入排序、希尔排序)
- 数据结构---------插入排序和希尔排序
- 数据结构 - 希尔排序
- 数据结构 排序(希尔排序)
- 数据结构 希尔排序
- 数据结构--排序系列(插入排序,希尔排序,堆排序)Java代码实现
- 数据结构_内部排序_希尔排序_快速排序_堆排序_归并排序_地址排序
- PHP数据结构(5)希尔排序及其时间复杂度
- 《常见算法和数据结构》元素排序(2)——希尔排序(动画)
- 【数据结构和算法】排序算法之四:希尔排序
- 数据结构-直接插入排序与希尔排序
- java 数据结构基本算法希尔排序
- 算法和数据结构-排序-希尔排序(Java)
- 数据结构-希尔排序