分类: C/C++
2008-04-17 22:45:33
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