#include<bits/stdc++.h>
int main()
{
int arr[10] = {9,5,3,8,1,2,6,7,4,10};
void quicksort(int a[10],int i,int j); //函数的声明
printf("排列前:");
for(int i = 0; i < 10;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
quicksort(arr,0,9); //调用函数
printf("排列后:");
for(int i = 0; i < 10;i++)
{
printf("%d ",arr[i]);
}
system("pause");
return 0;
}
void quicksort(int a[10],int first,int end)
{
if(first > end) //递归结束条件
{
return;
}
int i = first,j = end,flag = a[i],exchange = 0;
while(i != j)
{
while(i < j && a[j] > flag)
{
j--;
}
while(i < j && a[i] <= flag)
{
i++;
}
if(j > i)
{
exchange = a[i];
a[i] = a[j];
a[j] = exchange;
}
}
a[first] = a[i];
a[i] = flag;
quicksort(a,first,i - 1);
quicksort(a,i + 1,end);
}
程序设计日志5----快速排序
最新推荐文章于 2024-07-24 22:51:50 发布