题解 | C++选择排序
C++选择排序
https://www.nowcoder.com/practice/3b6175426e704c0b9461628b2278631b
#include <any>
#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];
}
// write your code here......
for(int i=0;i<len;i++){
int min_1=arr[i];
int target=i;
for(int j=i;j<len;j++){
if(arr[j]<min_1){
min_1=arr[j];
target=j;
}
}
swap(arr[i],arr[target]);
}
for (int i = 0; i < len; i++) {
if(i!=len-1){
cout<<arr[i]<<" ";
}else{
cout<<arr[i];
}
}
return 0;
}
费了老半天 一直出错 原来是target忘记初始化。。。如果当前值就已经是最小值,那么target永远没有机会被赋值,因而出错
牢记啊!
查看12道真题和解析