actually i was doing the exercise for ascending number with the most fast way reading so....im trying to do this coding...call
quick sort and i got an error...
can someone help me pls...................!!!!
CODE
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
void quick1(char *test,int lolimit,int hilimit);
void quikSort(char *test,int lolimit,int hilimit);
void swap(char *test,char *b);
void main()
{ clrscr();
char test[80];
struct LLnode;
char choice;
int lolimit,hilimit;
clrscr();
printf("String to sort>> ");
scanf("%d",&test);
printf("sort by...");
printf("\t[Q]Quick1");
printf("\t[S]QuikSort");
printf("choice>>");
printf("%s (input string)\n",test);
switch(choice){
case 1 :
quick1(test,lolimit,hilimit);
puts(test);
break;
case 2 :
quikSort(test,lolimit,hilimit);
puts(test);
break;
}
getch();
}
void swap(char *test,char *b){
char tmp=*test;
*b=tmp;
return;
}
void quick1(char *test,int lolimit,int hilimit){
int recurselevel;
int jbig=lolimit+1;
int jsmall=hilimit;
char pivot=test[(jbig+jsmall)/2];
printf("%s lolimit=%d hilimit=%d pivot=%c recurselevel-%d\n",test,lolimit,hilimit,pivot,recurselevel);
if(hilimit-lolimit<=0);
return;
if(hilimit-lolimit==1){
if(test[lolimit]>test[hilimit])
swap(&test[lolimit],&test[hilimit]);
return;
swap(&test[lolimit],&test[(jbig+jsmall)/2]);
do{
while((jbig<=jsmall)&&(test[jbig]<pivot))
jbig++;
while((jsmall>=jbig)&&(test[jsmall]>=pivot))
jsmall--;
if(jbig<jsmall)swap(&(test[jbig]),&(test[jsmall]));
}
while (jbig<jsmall);
swap(&test[lolimit],&test[jbig-1]);
recurselevel++;
quick1(test, lolimit, jbig-2);
quick1(test,jbig,hilimit);
recurselevel--;
return;
}
void quikSort(char *test,int lolimit,int hilimit){
int lo = lolimit;
int hi = hilimit;
char pivot =a[(lolimit+hihimit)/2];
printf("%s loLimit=%d hiLimit=%d pivot=%c recurseLevel=%d\n",test,lolimit,hilimit,pivot,++recurselevel);
while (lo<=hi){
while ((lo<hilimit) && (a[lo]<pivot))lo++;
while ((hi>lolimit) && (a[hi]>pivot))hi--;
if (lo<=hi){
swap(&a[lo],&test[hi]);
lo++;
hi--;
}
}
if (lolimit<hi)quikSort(a,lolimit,hi);
if (lo<hilimit)quikSort(test,lo,hilimit);
recurselevel--;
return;
}
}