码迷,mamicode.com
首页 > 其他好文 > 详细

20140527 希尔排序

时间:2014-06-07 03:53:30      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

bubuko.com,布布扣
#include<stdio.h>
void ShellSort(int *a,int length)
{
    int jump=length; int temp=0; int change=1;
    while(jump>0)  //while1
    {
        jump=jump/2;
        change=1;
        /************************************************************************/
        /* 以下while循环表示一个固定步长下的排序
            原始是序列:    3    2    4    7    5    9    6
            第1个for后:    3    2    4    6    5    9    7 chang=1  
            第2个for后:    3    2    4    6    5    9    7    change=0 跳出while2
            步长jump=3/2变为1:
            第1个for之后:    2    3    4    5    6 7 9  chang=1
            第2个for之后:    2    3    4    5    6 7 9  chang=0  跳出while2
            jump=1/2=0:跳出while1  希尔排序结束
        */
        /************************************************************************/
        while(1==change&&jump!=0)//while2
        {
            change=0;
            for(int i=0;i<length-jump;i++)
            {
                if(a[i+jump]<a[i])
                {
                    temp=a[i+jump];
                    a[i+jump]=a[i];
                    a[i]=temp;
                    change=1;
                }
            }
        }
    }
}
void display(int a[],int n)
{
    int i=0;
    while(i<n)
    {
        printf("%d ",a[i]);
        i++;
    }
}
void main()
{
    int a[]={3,2,4,7,5,9,6};
    int length=sizeof(a)/4;
    ShellSort(a,length);
    display(a,length);
}
bubuko.com,布布扣

20140527 希尔排序,布布扣,bubuko.com

20140527 希尔排序

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/yexuannan/p/3756108.html

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