用C编个快速排序的程序~~谢谢~~

来源:百度知道 编辑:UC知道 时间:2024/05/13 09:52:32
由于最近的课设做个快速排序的实现~~本人又很菜在C方面~~~
所以请个位高手帮小弟一把~~~~谢谢啊~~~

呵呵,这个问题我给你解决,如下:(已调试成功)
#include<iostream.h>
#include<string.h>

#define MAXSIZE 20

typedef struct
{
int key;
}Redtype;

typedef struct
{
Redtype r[MAXSIZE+1];
int length;
}Sqlist;

int Parttition(Sqlist &L,int low,int high)
{
L.r[0]=L.r[low];
int pivotkey=L.r[low].key;
while(low<high)
{
while(low<high && L.r[high].key>=pivotkey)
--high;
L.r[low]=L.r[high];
while(low<high && L.r[high].key<=pivotkey)
++low;
L.r[high]=L.r[low];
}
L.r[low]=L.r[0];
return low;
}

void Qsort(Sqlist &L,int low,int high)
{
if(low<high)
{
int pivotloc=Parttition(L,low,high);
Qsort(L,low,pivotloc-1);
Qsort(L,pivotloc+1,high);
}
}

void QuickSort(Sqlist &L)
{
Qsort(L,1,L.length);
}

void main()
{<