重新开始算法之旅,从最简单的排序算法开始,每天积累一点点。
选择排序基本思路:每轮循环中找出待排序元素中最小的一个。
下面是C++代码
#include <iostream>
void SelectSort(int arr[], int n)
{
//寻找[i,n)区间内的最小值
for (int i = 0; i < n; i++)
{
int index = i;
for (int j = i + 1; j < n; j++)
{
if (arr[j] < arr[index])
index = j;
}
if (index != i)
std::swap(arr[i], arr[index]);
}
}
void PrintArr(int arr[], int n)
{
for (int i = 0; i < n; i++)
{
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
int main()
{
int arr[] = { 10,9,8,7,6,5,4,3,2,1 };
SelectSort(arr, sizeof(arr) / sizeof(int));
PrintArr(arr, sizeof(arr) / sizeof(int));
system("pause");
return 0;
}
加油!