- 一、解析问题
- 二,测试用例
- 三,下一个排序
一、解析问题
- 选择排序的思想是多次遍历(n -1 次),每次遍历选出最小的元素角标。
- 在循环结束后, 与排好升序的部分的下一个元素交换,直到全排列有序停止。
void SelectSort(int* arr, int sz)
{
for (int i = 0; i < sz - 1; ++i)
{
int maxIndex = i;
for (int j = i + 1; j < sz; ++j)
{
if (arr[maxIndex] > arr[j])
{
maxIndex = j;
}
}
swap(arr[maxIndex], arr[i]);
}
}
二,测试用例
// 八大排序.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include三,下一个排序using namespace std; void SelectSort(int* arr, int sz) { for (int i = 0; i < sz - 1; ++i) { int maxIndex = i; for (int j = i + 1; j < sz; ++j) { if (arr[maxIndex] > arr[j]) { maxIndex = j; } } swap(arr[maxIndex], arr[i]); } } int main() { int arr[] = { 1,2,5,4,1,2,3,6,9,5,1,4,8,31,1,5646,1,6,156,156,156,156,146,1,156,1,65,1651,5,151,51,6 }; SelectSort(arr, 32); for (int i = 0; i < 32; ++i) { cout << arr[i] << " "; } return 0; }



