C++选择排序
思路
选择排序的思路十分的简单
我们需要先有一个数组:
这里用s[8]举例: s[]= {118,101,105,127,112}
将数组的第一位*(118)和数组里下表为:0-7 (就是第一个到最后一个) 最小的数(101)*进行交换
后面也一样以此类推,第二次排序就是把第二个和第二个到最后一个里面最小的数进行交换
代码
#include<iostream>
using namespace std;
void Select_Sort(int* arr, int n)
{
for (int i = 0; i < n-1; i++) {
int min = i;
for (int j = i; j < n; j++) {
if (arr[min] > arr[j]) {
min = j;
}
}
if (min != i) {
swap(arr[i], arr[min]);
}
}
}
int arr[10100] ;
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
Select_Sort(arr, n);
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout << endl;
return 0;
}