给定一个数列,用快速排序算法把它排成升序.第一行是一个整数n,表示要排序的数的个数;下面一行是用空格隔开的n个整数.
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 07:18:39
给定一个数列,用快速排序算法把它排成升序.第一行是一个整数n,表示要排序的数的个数;下面一行是用空格隔开的n个整数.
给定一个数列,用快速排序算法把它排成升序.
第一行是一个整数n,表示要排序的数的个数;下面一行是用空格隔开的n个整数.
给定一个数列,用快速排序算法把它排成升序.第一行是一个整数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();
var n,i:longint;
a:Array[1..100] of longint;
procedure qsort(b,e:longint);
var i,j,mid,r:longint;
begin
i:=b; j:=e; mid:=a[(i+j) div 2...
全部展开
var n,i:longint;
a:Array[1..100] of longint;
procedure qsort(b,e:longint);
var i,j,mid,r:longint;
begin
i:=b; j:=e; mid:=a[(i+j) div 2];
repeat
while a[i]
while a[j]>mid do
dec(j);
if i<=j
then begin
r:=a[i];
a[i]:=a[j];
a[j]:=r;
inc(i);
dec(j);
end;
until i>j;
if i
begin
readln(n);
for i:=1 to n do
read(a[i]);
qsort(1,n);
for i:=1 to n do
write(a[i],' ');
end.
收起