排序算法--选择排序

实现逻辑

① 第一轮从下标为 1 到下标为 n-1 的元素中选取最小值,若小于第一个数,则交换

② 第二轮从下标为 2 到下标为 n-1 的元素中选取最小值,若小于第二个数,则交换

③ 依次类推下去......

cpp 复制代码
void print_array(int a[], int n){
	for (int i = 0; i < n; ++i){
		cout << a[i] << " ";
	}
	cout << endl;
}

void selectSort(int arr[], int nSize)
{
	for (int i = 0; i < nSize - 1; ++i)
	{
		int nMin = i;
		for (int j = i + 1; j < nSize; ++j)
		{
			if (arr[nMin] < arr[j])
			{
				nMin = j;
			}
		}
		if (nMin != i)
		{
			int nTemp = arr[nMin];
			arr[nMin] = arr[i];
			arr[i] = nTemp;
		}
	}
}

int main(){
	int arr[] = {10, 8, 11, 7, 4, 12, 9, 6, 5, 3};
	int len = sizeof(arr)/sizeof(arr[0]);
	int newArray[10] = {0};
	
	cout << "排序前:";
	print_array(arr, len);

	selectSort(arr, len);
	
	cout << "排序后:";
	print_array(arr, len);
	return 0;
}

输出结果:

相关推荐
木向1 小时前
leetcode42:接雨水
开发语言·c++·算法·leetcode
sukalot1 小时前
windows C++-创建基于代理的应用程序(下)
c++
labuladuo5201 小时前
AtCoder Beginner Contest 372 F题(dp)
c++·算法·动态规划
DieSnowK1 小时前
[C++][第三方库][httplib]详细讲解
服务器·开发语言·c++·http·第三方库·新手向·httplib
StrokeAce3 小时前
linux桌面软件(wps)内嵌到主窗口后的关闭问题
linux·c++·qt·wps·窗口内嵌
家有狸花6 小时前
VSCODE驯服日记(三):配置C++环境
c++·ide·vscode
dengqingrui1237 小时前
【树形DP】AT_dp_p Independent Set 题解
c++·学习·算法·深度优先·图论·dp
C++忠实粉丝7 小时前
前缀和(8)_矩阵区域和
数据结构·c++·线性代数·算法·矩阵
ZZZ_O^O7 小时前
二分查找算法——寻找旋转排序数组中的最小值&点名
数据结构·c++·学习·算法·二叉树