八大排序之一---选择排序
作者:互联网
选择排序
一、解析问题
- 选择排序的思想是多次遍历(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 <iostream>
using namespace std;
/*
* 选择排序的思想是多次遍历(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]);
}
}
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;
}
三,下一个排序
标签:sz,arr,八大,156,int,maxIndex,---,排序 来源: https://blog.csdn.net/m0_46208939/article/details/121195235