《挑战程序设计竞赛》阅读笔记二 之 ALDS1_2_B Selection Sort
第三章 Sort I
ALDS1_2_B Selection Sort
三大简单排序之 选择排序,选择剩下的最小的放到前面这次循环的开始处。
#include <iostream>
using namespace std;
int SelectionSort(int a[],int n){
int count=0;
for(int i=0;i<n-1;i++){
int minj=i;
for(int j=i+1;j<n;j++){
if(a[minj]>a[j]){
minj=j;
}
}
if(minj!=i){
int temp = a[minj];
a[minj]=a[i];
a[i]=temp;
count++;
}
}
}
int main() {
int a[105];
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
int count = SelectionSort(a,n);
for(int i=0;i<n;i++){
if(i>0) cout<<" ";
cout<<a[i];
}
cout<<endl;
cout<<count<<endl;
return 0;
}