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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: C/C++

2008-04-17 22:44:59

来源:hur.cn

{

int i,j,k,temp;

for(i=0;i

{

        k=i;

/*把最小的那一个数找出来,并且用a[k]记下来,然后与a[i]交换;*/

        for(j=i+1;j

               if(array[k]>array[j])

                      k=j;

        temp=array[k];

        array[k]=array[i];

        array[i]=temp;

}

}

void main()

{

int a[]={12,43,54,23,32,65,87,2,34,54};

int i;

sort(a,10);

for(i=0;i<10;i++)

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

}

这是一个快速排序的程序:

#include

void quick_sort(int array[],int first,int last)//first,last分别为数组下标的范围;

{

int temp,low,high,list_separator;

low=first;

high=last;

/*下面是比较数组中的大小,把数组中的数与中间数比较,大的放在后半部分,比中间数小的放在前半部分,*/

    list_separator=array[(first+last)/2];//中间数;

do{

        while(array[low]中间数与前半部分比较;

               low++;

        while(array[high]>list_separator)// 中间数与后半部分比较;

&nb

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