一、选择排序基本思想
在一列数中找到最大(最小元素),与指定位置的数交换;对余下的数重复上述步骤,最终获得所需的顺序。
二、示例分析
三、代码实现
#include <iostream>
#include <assert.h>
using namespace std;
void SelectSort(int* arr, int size)
{
assert(arr);
int i = 0;
for (i = size - 1; i > 0; i--) {
int maxindex = 0;
for (int j = 1; j <= i; j++) {
if (arr[maxindex] < arr[j]) {
maxindex = j;
}
}
swap(arr[maxindex],arr[i]);
}
}
int main(int argc, const char* argv[])
{
int arr[] = {8, 6, 1, 4, 0, 2, 7, 5, 9, 3};
SelectSort(arr, sizeof(arr)/sizeof(arr[0]));
for (int i = 0; i < sizeof(arr)/sizeof(arr[0]); i++) {
cout<<arr[i]<<" ";
}
cout<<endl;
return 0;
}