您的位置:首页 > 产品设计 > UI/UE

快速排序算法(Quick Sort)

2012-08-07 21:04 435 查看
参照《数据结构》(C语言版)严蔚敏

#include <iostream.h>

struct SqList
{
int r[100];
int length;
};

int Partition(SqList &L, int low, int high)
{
int pivotKey=L.r[low];
L.r[0]=pivotKey;

while(low<high)
{
while(low<high && L.r[high]>=pivotKey)
high--;
L.r[low]=L.r[high];

while(low<high && L.r[low]<=pivotKey)
low++;
L.r[high]=L.r[low];
};

L.r[low]=L.r[0];
return low;
}

void QSort(SqList &L, int low, int high)
{
int pivotLoc=Partition(L, low, high);
if(low < high)
{
QSort(L,low,pivotLoc-1);
QSort(L,pivotLoc+1, high);
}
}

int main()
{
SqList L;
L.r[1]=49;
L.r[2]=38;
L.r[3]=65;
L.r[4]=97;
L.r[5]=76;
L.r[6]=13;
L.r[7]=27;
L.r[8]=49;
L.length=8;
QSort(L,1,L.length);
for(int i=1;i<=L.length;i++)
{
cout << L.r[i] << "  ";
}
cout << endl;
return 0;
}


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: