實現:
#include<iostream>
using namespace std;
#define MAXSIZE 20//順序表的最大長度
typedef int KeyType;//定義關鍵字類型爲整型
typedef int InfoType;
typedef struct
{
KeyType key;//關鍵字項
InfoType otherinfo;//其他數據項
}RedType;
typedef struct
{
RedType r[MAXSIZE+1];//r[0]閒置或做哨兵單元
int length;//順序表的長度
}SqList;//順序表類型
void SelectSort(SqList &L)//對順序表L做簡單快速排序
{
RedType t;
for(int i=1;i<L.length;++i)//在L.r[i..L.length]中選擇關鍵字最小的記錄
{
int k=i;
for(int j=i+1;j<=L.length;j++)
if(L.r[j].key<L.r[k].key)
k=j;//k指向此趟排序中關鍵字最小的記錄
if(k!=i)
{
t=L.r[i];
L.r[i]=L.r[k];
L.r[k]=t;
}
}
}
int main()
{
SqList L;
for(int i=1;i<=10;i++)
L.r[i].key=11-i;
L.length=10;
for(int i=1;i<=L.length;i++)
cout<<L.r[i].key<<" ";
cout<<endl;
SelectSort(L);
for(int i=1;i<=L.length;i++)
cout<<L.r[i].key<<" ";
cout<<endl;
return 0;
}
運行結果: