Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103647545
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: C/C++

2008-04-17 22:45:33

 来源:hur.cn

sp;              high--;

        if(low<=high)//前半部分与后半部分交换;

        {

               temp=array[low];

               array[low++]=array[high];

               array[high--]=temp;

        }

}while(low<=high);

if(first

        quick_sort(array,first,high);//利用递归的办法,实行循环;

if(low

        quick_sort(array,low,last);//利用递归的办法,实行循环;

}

 

void main()

{

int a[9]={12,23,34,65,93,32,21,9,8};

quick_sort(a,0,8);

for(int i=0;i<9;i++)

        printf("%d\t",a[i]);

printf("\n");

}

这是一个希尔排序的程序:

#include

void shell_sort(int array[],int size)

{

int temp,gap,i,flag;

gap=size/2;

do{

        do{

               flag=0;/*利用标记,使前半部分与后半部分的数都对应比较过,前半部分大于后半部分的交换,直到都比较过,并且前半部分的数小于与前部分一一对应的后部分的数时,退出while循环*/

               for(i=0;i

                      if(array[i]>array[i+gap])

                      {

                             temp=array[i];

          &nbs

阅读(834) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~