首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

希尔排序解决思路

2012-04-09 
希尔排序现在有一个数组,int a[]{1,5,2,0,69},帮我用希尔排序的方式将其排序,谁能帮我写一个函数呢书上的

希尔排序
现在有一个数组,int a[]={1,5,2,0,69},帮我用希尔排序的方式将其排序,谁能帮我写一个函数呢

书上的好像看不懂


[解决办法]

C/C++ code
#include<stdio.h>void main(){    int a[]={1,5,2,0,69},i;    void ShellSort(int a[],int n);    int n=sizeof(a)/sizeof(a[0]);        ShellSort(a,n);    for(i=0;i<n;i++)    {        printf("%d ",a[i]);    }}void ShellSort(int a[],int n){    int gap= n/2,t,i,j;    while(gap>0)    {        for(i=gap;i<n;i++)        {            t = a[i];            j = i - gap;            while(j >= 0 && t < a[j])            {                a[j + gap] = a[j];                j = j - gap;            }            a[j + gap] = t;        }        gap/=2;            }}
[解决办法]
楼主,你能说你程序是怎么 排序的 吗
探讨
C/C++ code

#include<stdio.h>
void main()
{
int a[]={1,5,2,0,69},i;
void ShellSort(int a[],int n);
int n=sizeof(a)/sizeof(a[0]);

ShellSort(a,n);
for(i=0;i<n;i++)
……

[解决办法]
楼主,你根据增量分组之后 的 直接插入排序 写的不对 吧
[解决办法]
http://baike.baidu.com/view/178698.htm
楼主看下这里面的,写的很详细啊,你看看。。
[解决办法]
谢啦,看了这帖子懂了希尔算法。楼主加油哦
[解决办法]
探讨
我这样写了一个希尔排序的程序,也可以运行,但是和书上的不一样,用了四个循环

C/C++ code

#include<stdio.h>
void main()
{
int a[]={25,10,14,69,78,36,20};
int n=sizeof(a)/sizeof(a[0]),i;
void shellsort(t a[],int n);
……

热点排行