本篇文章是使用C++实现的选择排序算法,算法复杂度为O(n2)
选择排序算法初始时在序列中找到最小元素,放到序列的起始位置作为已排序序列;然后,再从剩余未排序元素中继续寻找最小元素,放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
如上图数组中有8个元素,首先将第一个元素1作为最小元素,然后遍历后面的7个元素,遍历完后如果发现有比1更小的元素,就将该元素与1互换;接下来将6作为最小元素,然后遍历后面的6个元素,如果发现有比6更小的元素,就将该元素与6互换,以此类推,直到最后。
下面是C++实现:
#include <iostream>
#include <ctime> //time()函数
#include <cstdlib> //rand()函数
#include <cassert> //assert()函数
using namespace std;
int* generateRandomArray(int n, int rangeL, int rangeR){
//生成随机数组
assert(rangeL < rangeR)