题解 | #C++选择排序#
C++选择排序
https://www.nowcoder.com/practice/3b6175426e704c0b9461628b2278631b
#include <iostream>
using namespace std;
// 冒泡排序法:相邻两个数进行比较然后移动
void bubblesort(int arr[],int n){
for(int i=0;i<n-1;i++){
for(int j=0;j<n-i-1;j++){ //每次经过比较之后,最大的数会浮到最后的位置,下轮比较就不用再管了
if(arr[j]>arr[j+1]){
//int temp=arr[j];
//arr[j]=arr[j+1];
//arr[j+1]=temp;
swap(arr[j],arr[j+1]);//交换两者的位置
}
}
}
}
//选择排序法:不断找出最小的放在前面
void selectionsort(int arr[],int n){
for(int i=0;i<n-1;i++){
int min_idx =i;
for(int j=i+1;j<n;j++){
if(arr[j]<arr[min_idx])
min_idx =j;
}
//int temp=arr[i];
//arr[i]=arr[min_idx];
//arr[min_idx]=temp;
swap(arr[i],arr[min_idx]);//交换两者的位置
}
}
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......
//调用选择排序法
selectionsort(arr,len);
for(int i=0;i<len;i++){
cout<<arr[i]<<" ";
}
return 0;
}
