排序算法--选择排序

实现逻辑

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

输出结果:

相关推荐
我在人间贩卖青春19 分钟前
C++之this指针
c++·this
云姜.21 分钟前
java多态
java·开发语言·c++
CoderCodingNo30 分钟前
【GESP】C++五级练习题 luogu-P1865 A % B Problem
开发语言·c++·算法
陳103037 分钟前
C++:红黑树
开发语言·c++
一切尽在,你来42 分钟前
C++ 零基础教程 - 第 6 讲 常用运算符教程
开发语言·c++
weixin_499771551 小时前
C++中的组合模式
开发语言·c++·算法
近津薪荼2 小时前
dfs专题5——(二叉搜索树中第 K 小的元素)
c++·学习·算法·深度优先
xiaoye-duck2 小时前
吃透 C++ STL list:从基础使用到特性对比,解锁链表容器高效用法
c++·算法·stl
_F_y2 小时前
C++重点知识总结
java·jvm·c++
皮皮哎哟2 小时前
数据结构:嵌入式常用排序与查找算法精讲
数据结构·算法·排序算法·二分查找·快速排序