提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
使用的语言为c++,编译器为vs2022.
简单选择排序模板
SelectionSort() - 用来进行选择排序
Swap() - 用来对数据进行交换
一、什么是选择排序
选择排序顾名思义就是,从一对数据中选择其中最小的放在第一位,其次第二小的放在下一位,就这样一直下去,直到完成排序(升序)。
二、选择排序
选择排序其实也就是两层循环,外层循环来锁定min最小值的下标,内层循环来比较min下标和j下标值的大小,比min下标的值还小则进行交换操作以此类推。
#define MAXSIZE 10
#include <iostream>
using namespace std;
//简单选择排序
//交换
void Swap(int arr[], int i, int j)
{
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
int main()
{
int i, j,min;
int arr[MAXSIZE] = { 5,8,6,3,2,4,7,9,1,0 };//定义一个数组用来排序
for (i = 0; i < MAXSIZE-1; i++)
{
min = i;//用min来存放数组下标
for (j = i + 1; j < MAXSIZE; j++)
{
if (arr[min] > arr[j])//比较min下标的数和j下标的数大小
Swap(arr, i, j);//交换下标保证Min下标的值最小
}
}
for (i = 0; i < MAXSIZE; i++)
{
cout << arr[i] << " " ;//打印数组arr中的值
}
system("pause");
return 0;
}
总结
选择排序最大的特点就是交换移动次数相当少,当在最好的情况下,交换的次数为0,最差的时候,交换次数为n-1次,其最终的排序时间是比较与交换次数总和,所以时间复杂度为O(n2)