快速排序程序,貌似是结构体的问题!!!!!
快速排序的程序
编译时出现错误,不知道错在哪里,个人觉得是结构体的问题,请高手指教!
源程序:
#include<stdio.h>
#include<string.h>
#define MAXNODE 1000
typedef struct
{
key; /*关键码*/
}RecNode;
RecNode r[MAXNODE];
int Partition(RecNode r[],int low,int high) /*r[]存放输入的待排记录,函数实现一趟排序,并返回支点最终位置*/
{
if(low>high) return 0;
if(low==high) return low; /*一趟排序结束*/
r[0]=r[low]; /*缓存支点记录*/
while(low<high)
{
while(low<high&&r[high].key>=r[0].key) high--;
if(low<high)
{
r[low]=r[high];
low++;
}
while(low<high&&r[low].key<r[0].key) low++;
if(low<high)
{
r[high]=r[low];
high--;
}
}
r[low]=r[0];
return low;
}
void Quick_sort(RecNode r[],int m,int n)
{
int i;
i=Partition(r,m,n);
Quick_sort(r,m,i-1); /*对前一组进行排序*/
Quick_sort(r,i+1,n); /*对后一组进行排序*/
}
/*
int Strlen(RecNode *s)
{
int i;
for(i=0;s[i]!='\0';)
i++;
return i;
}
*/
void main()
{
int node,i,j,n=1;
int index,list;
RecNode r[MAXNODE];
/*存放输入的待排序数*/
index=0;
list=1;
printf("input string:");
scanf("%d",&node);
while(node!='#')
{
r[list]=node;
list=list+1;
scanf("%d",&node);
}
Quick_sort(r,1,n);
printf("\n the final sorting result:");
for(i=0;i<index;i++)
{
printf("%d ",list[i]);
}
}