クイックソートでの整列
10個~20個程度の数列をキーボードから入力し、降順に整理し途中経過と整列後の状態を表示するプログラムを作りなさい。
このような課題が出ているのですが、よくわかりません。授業中に
この2つのプログラムを応用すればできるといわれたプログラムがあるのですが、コンパイルするとエラーがたくさん出てきます。
ヒントを教えてください。
1.c
#include <stdio.h>
#include <stdlib.h>
quick_sort(int a[], int l, int r);
main(int argc, char *argv)
{
int i, x[100], n;
n = atoi(argv[1]);
for(i = 0;i< n;i++);
scanf("%d", %x[i]);
quick_sort(x, n);
printf("sort\n");
for(i = 0;i<n; i++){
printf("%d\n", x[i]);
}
return ;
}
2.c
quick_sort(int a[], int l, int r)
{
int v,i,j,t;
if(r>1)
{
v=a[r]; i=l-1; j=r;
while(1)
{
while(a[++i]<v);
while(a[--j]>v) if(j==l)break;
if(i>=j)break;
t=a[i];a[i]=a[j];a[j]=t;
}
a[r]=a[i];a[i]=v;
quick_sort(a,l,i-1);
quick_sort(a,i+1,r);
}
}
お礼
とても参考になりました!ありがとうございました!