// 算法步骤
// 1.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
// 2.再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
// 3.重复第二步,直到所有元素均排序完毕。
// 以下是代码实现
// 选择排序
#include<iostream>
#include<iomanip>
using namespace std;
void selectionSort(int arr[], int len)
{
// 第一层循环为循环次数
for (int i = 0; i < len; i++)
{
// 记录最小值的下标,便于后面的换位
int minIndex = i;
// 第二层循环遍历当前数往后在数据
for (int j = i; j < len; j++)
{
// 大小判断,如数值小于最小值,则更改最小值下标
if (arr[j] < arr[minIndex])
{
minIndex = j;
}
}
// 每次循环结束都将当前数与最小数调换位置
swap(arr[i], arr[minIndex]);
}
}
int main()
{
int num[9,8,0,6,8,2];
// n为**数组长度**。sizeof(num)求出 **数组所占字节数** 除以 **每个数据的字节数** 就能知道数组长度
int n = sizeof(num) / sizeof(num[0]);
selectionSort(num, n);
for(int i = 0; i < n; i++)
{
cout<< num[i] << ' ';
标签:minIndex,arr,int,C++,选择,num,sizeof,排序
From: https://www.cnblogs.com/Saber-World/p/18282622