一、选择排序
首先在未排序中找出最小的元素,存放到排序序列的起始位置,然后再从剩余的未排序序列中选出最小的元素
放在已排序的末尾(未排序的首位)
二、选择排序的特点
1、选择排序对文件本身的顺序依赖很低,运行时间与输入无关
2、长度为N的序列,最多需要比较N次,数据移动是所有排序算法中最少的
3、比较次数是N(N-1)/2
4、赋值操作介于0~3(N-1)
5、时间复杂度 O(N²)
6、选择排序是不稳定的排序
三、代码实现
#include <iostream>
#define Less(a,b) if(a<b)
using namespace std;
template <typename type>
void Exch(type& a, type& b)
{
type temp = a;
a = b;
b = temp;
}
template <typename type>
void SelectionSort(type data[], int length)
{
//两次遍历,找出最小的数,交换位置
for (int i =