#include<stdio.h>//好久没写程序了,练练手
int Partition(int *r,int i,int j)//
{
int temp=r[i];
while(i<j)
{
while(i<j && temp<=r[j])
j--;
if(i<j)
{
r[i]=r[j];
i++;
}
while(i<j && r[i]<temp)
{
i++;
}
if(i<j)
{
r[j]=r[i];
j--;
}
}
r[i]=temp;
return i;
}
void QuickSort(int *r,int s,int t)//
{
int i;
// for(int i=0;i<7;i++)
// printf("%d ___",r[i]);
// printf("\n");
if(s<t)
{
i=Partition(r,s,t);
QuickSort(r,s,i-1);
QuickSort(r,i+1,t);
}
}
int main()
{
///scanf();
int a[]={1,3,5,4,8,7,2};
// for(int i=0;i<7;i++)
// r[i]=i;
for(int i=0;i<7;i++)
printf("%d ",a[i]);
printf("\n");
QuickSort(a,0,6);
for(int i=0;i<7;i++)
printf("%d ",a[i]);
for(;;);
return 0;
}
快速排序
最新推荐文章于 2025-01-04 00:37:43 发布
本文介绍了一个简单的快速排序算法实现过程,通过递归调用分区函数完成数组的排序,并提供了完整的C语言代码示例。
18万+

被折叠的 条评论
为什么被折叠?



