C++ 选择排序
作者:互联网
基本原理
选择排序的原理其实和冒泡排序很像,都是两层循环嵌套:
- 设第一个元素为“标兵”,“标兵”的值为最小值,index 为最小值的 index 。
- 遍历第一个元素之后的所有元素,若找到更小的值,则更新最小值和 index 。
- 交换“标兵”和最小值,实现将最小值放在第一位,“标兵”后移,更新“标兵”。
- 重复以上循环,直至遍历完毕。
以下 gif 参考https://blog.csdn.net/L_PPP/article/details/108498581:
代码实现
#include <iostream>
#include <string>
using namespace std;
int main(){
int array[10] = {1, 6, 8, 7, 9, 4, 3, 0, 2, 5};
int len = sizeof(array) / sizeof(array[0]);
int min_num = 0; // 最小值
int min_index = 0; // 每一轮比较的最小值索引
for (int i = 0; i < len; i++){
min_num = array[i];
min_index = i;
for (int j = i + 1; j < len; j++){
if (array[j] < min_num){
min_num = array[j];
min_index = j; // 更新最小值的位置
}
}
int temp = array[min_index];
array[min_index] = array[i];
array[i] = temp;
}
for (int i = 0; i < len; i++){
cout << array[i] << " ";
}
}
标签:index,标兵,min,int,C++,选择,最小值,array,排序 来源: https://blog.51cto.com/u_15251606/2852406