C++排序代码:选择排序

/*
选择排序:每次从待排元素中选择最小(或最大)的一个元素,放到待排元素的最前面,直到排序完成。
由于选择最小(或最大)元素时,该元素和待排的第一位元素交换,所以选择排序 不稳定。例子:5 7 5 3 9
时间复杂度:O(n^2)
空间复杂度:O(1)
*/

#include<iostream>
using namespace std;

int a[] = { 3,5,2,4,6,8,9,7,1 };  //给定数组
int len = 9;  //直接给出长度

int main() {
	//选择排序
	int k;  //用于存储最小值的下标
	for (int i = 0; i < len; i++) {
		k = i;  //k从i向右查找
		for (int j = i + 1; j < len; j++) {
			if (a[j] < a[k]) {  //如果有比a[k]小的数,则k更新为该下标
				k = j;
			}
			if (k != i) {  //如果存在比a[i]小的数则交换
				swap(a[i], a[k]);
			}
		}
	}

	//打印输出
	for (int i = 0; i < len - 1; i++) {
		cout << a[i] << " ";
	}
	cout << a[len - 1] << endl;

	return 0;
}

全部评论

相关推荐

08-29 16:36
门头沟学院 Java
野猪不是猪🐗:不如这样查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务