#include <iostream>
using namespace std;
#define MAXSIZE 10
typedef struct{
int data[MAXSIZE+1]; //data[0]作为哨兵
int length;
}SqList;
void Swap(SqList *L, int i, int j)
{
int tmp;
tmp = L->data[i];
L->data[i] = L->data[j];
L->data[j] = tmp;
}
void SelectSort(SqList *L)
{
int i, j;
int min;
for(i=1; i<L->length; i++) {
min = i;
for(j=i+1; j<=L->length; j++) {
if(L->data[j] < L->data[min]) {
min = j;
}
}
if(i != min) {
Swap(L, i, min); //找到最小的数然后进行交换
}
}
}
int main()
{
int i;
SqList list;
cout <<"Please input " <<MAXSIZE<<" number :" << endl;
for(i=0; i<MAXSIZE; i++) {
cin >> list.data[i+1];
}
list.length = MAXSIZE;
cout <<"The numbers before sort: ";
for(i=0; i<MAXSIZE; i++) {
cout << list.data[i+1] << " ";
}
cout << endl;
SelectSort(&list);
cout <<"The numbers after sort: ";
for(i=0; i<MAXSIZE; i++) {
cout << list.data[i+1] << " ";
}
cout << endl;
return 0;
}