//QuickSort
#include<stdio.h>
#include<stdlib.h>
#define N 10
void Sort(int a[], int low,int high);
void Swap(int &m,int &n);
int main()
{
int i;
int a[N]= {-1,50,10,90,30,70,43,85,60,20};
Sort(a,1,9);
for(i=1;i<N;i++)
printf("%d ",a[i]);
return 0;
}
//程序开始,找比a[1]大到的数在a[1]右边,小的在左边,然后递归实现,当low和high相等的时候,循环结束
void Sort(int a[], int low,int high)
{
if(low >= high)
{
return ;
}
int i = low,j = high,key = a[low];
while(i < j)
{
while(i < j && a[j]>=key)
j--;
Swap(a[i],a[j]);
while(i < j && a[i]<=key)
i++;
Swap(a[i],a[j]);
}
Sort(a, low, i - 1);
Sort(a, i + 1, high);
}
//交换
void Swap(int &m,int &n)
{
int temp=m;
m=n;
n=temp;
}
快排
最新推荐文章于 2024-08-25 17:42:15 发布