简单选择排序
-
什么是简单选择排序
简单选择排序也称作直接选择排序,也是我们最常用到的排序方法。从第一个元素开始与后面的元素比较,如果第一个元素大于后面的元素,就两个进行交换。 -
简单选择排序的算法步骤
(1)设待排序的记录存放在数组r[1…n]中。从第一趟r[1]开始,通过n-1次比较,从N个记录中选出关键字最小的记录,记在r[k],交换了r[1] r[k].
(2) 以此类推,第i趟从r[i]开始,通过n-i次比较,从n-i+1个记录中选出关键字最小的记录,记为r[k],交换r[i]和r[k].
(3)经过n-1趟,排序完成。 -
代码实现
#include<iostream>
using namespace std;
#define MAXSIZE 20
typedef int KeyType;
typedef struct
{
KeyType key;//关键字
int other;//其他信息
}RedType;
typedef struct
{
RedType r[MAXSIZE];
int length;
}SqList;
void CreateSqList(SqList& L)
{
cout << "表的长度:";
cin >> L.length;
cout << "表的关键字信息:";
for (int i = 0; i < L.length; i++)
{
cin >> L.r[i].key;
}
}
void Sort(SqList& L)
{
for (int i = 0; i < L.length-1; i++)
{
for (int j = i + 1; j < L.length; j++)
{
if (L.r[i].key > L.r[j].key)
{
KeyType key = L.r[i].key;
L.r[i].key = L.r[j].key;
L.r[j].key = key;
}
}
}
}
void Show(SqList L)
{
for (int i = 0; i < L.length; i++)
{
cout << L.r[i].key << " ";
}
}
int main()
{
SqList L;
CreateSqList(L);
Sort(L);
cout << "排好序的表为:";
Show(L);
return 0;
}