クイックソート
クイックソートのプログラムを作ったのですがうまくいきません 汗
コンパイル時に
sample1.c: In function ‘quicksort’:
sample1.c:31: error: expected expression before ‘]’ token
sample1.c:32: error: expected expression before ‘]’ token
sample1.c:32: error: too few arguments to function ‘quicksort’
とでます。
まだアルゴリズムやCは勉強始めたばかりで基本的なところでつまって
いるかもしれません。ご教授おねがいします。
/*クイックソート*/
#include<stdio.h>
#define MAXDATA 10
#define swap(type,a,b) {type m; m = a; a = b; b = m;}
void quicksort(int a[],int left ,int right)
{
int i,j,pivot;
pivot = a[left];
i = left + 1;
j = right;
while(i <= j){
while(a[i]<pivot)
i++;
while(a[j]>pivot)
j--;
if(i<j){
swap(int,a[i],a[j]);
i++;
j--;
}
}
swap(int,a[left],a[j]);
quicksort(a[],left,j-1);
quicksort(a[],j+1,right);
}
int main(void)
{
int k,j,sort[MAXDATA];
for(k=0;k < MAXDATA;k++)
{printf("sort[%d]:",k); scanf("%d",&sort[k]);}
for(k=0;k < MAXDATA;k++)
printf("%3d",sort[k]);
puts("ソートしますか? Yes:1 No:0 ///");
scanf("%d",&j);
if(j==1){
quicksort(sort,0,MAXDATA-1);
for(k=0;k < MAXDATA;k++) printf("%3d",sort[k]);
}
putchar('\n');
return(0);
}