作业帮 > 综合 > 作业

给定一个数列,用快速排序算法把它排成升序.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 16:18:49
给定一个数列,用快速排序算法把它排成升序.
第一行是一个整数n,表示要排序的数的个数;下面一行是用空格隔开的n个整数.
#include
#define SIZE 100
int arrary[SIZE],n;
void sort(int cent)
{
\x05if(cent == n-1)
\x05\x05return;
\x05sort(cent+1);
\x05int i = cent+1,temp = arrary[cent];
\x05while(i < n)
\x05{
\x05\x05if(arrary[i] >temp)
\x05\x05{
\x05\x05\x05arrary[i-1] = arrary[i];
\x05\x05\x05i++;
\x05\x05}
\x05\x05else break;
\x05}
i --;
arrary[i] = temp;
}
void print(){
int i;
for(i = 0; i < n; i++)
printf("%d ",arrary[i]);
printf("\n");
}
int main(){
int i;
printf("输入待排序的数据的个数:");
scanf("%d",&n);
printf("输入数据,空格为分隔符号:\n");
for(i = 0; i < n; i++)
scanf("%d",&arrary[i]);
printf("排序前:\n");
print();
sort(0);
printf("排序后:\n");
print();
getchar();