题目的主要信息:
- 输入个整数进入数组,对其进行选择排序使之呈现从小到大后再输出
具体做法:
选择排序就是从数组最开始的位置开始,每次选出后续最小的元素放在那里,然后进入下一位,继续选后续最小,直到数组结束,这样就能排出从小到大的次序。
#include <iostream>
using namespace std;
int main() {
int arr[6] = { 0 };
int len = sizeof(arr) / sizeof(int);
for (int i = 0; i < len; i++) {
cin >> arr[i];
}
for(int i = 0; i < len; i++){
int min = arr[i]; //准备一个最小数
for(int j = i + 1; j < len; j++){ //遍历后续找到最小值
if(arr[j] < min)
swap(min, arr[j]);
}
arr[i] = min; //更新该位置为后续最小
}
for(int i = 0; i < len; i++) //输出
cout << arr[i] << " ";
return 0;
}
复杂度分析:
- 时间复杂度:,一共轮选择,每轮要比较次
- 空间复杂度:,无额外空间