八大排序之一---选择排序

选择排序


一、解析问题

  • 选择排序的思想是多次遍历(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;
}

八大排序之一---选择排序

三,下一个排序

八大排序之一---选择排序

上一篇:[GXYCTF2019]BabyUpload


下一篇:课时156:数学工具类Math