排序算法--选择排序

实现逻辑

① 第一轮从下标为 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;
}

输出结果:

相关推荐
悠仁さん8 小时前
【C++】AVL 树
c++
wuminyu8 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
小徐不徐说8 小时前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
ragnwang9 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
充值内卷10 小时前
我给桌面加了个鱼缸:C++ 写后端,WebView2 里养一座 Three.js 小岛
开发语言·javascript·c++
樱花树下的数学喵13 小时前
手写简易 STL string|C++ 字符串底层实现
开发语言·c++
AI吃大瓜13 小时前
指针压力表读数3:C/C++实现指针压力表读数(可实时检测)
c++·指针读数·指针压力表·压力表自动读数·压力表读数
-银雾鸢尾-13 小时前
两数之和-C++实现
c++·算法
j7~13 小时前
【动态规划算法专题】动态规划五部曲实战:泰波那契数、三步问题、最小花费爬楼梯
c++·算法·动态规划·数据结构与算法
jimy113 小时前
C++ 报错的 qualifiers 的意思
开发语言·c++