[算法导论]2.2节编程练习C++实现

2.2节重点描述评估算法性能的工具—时间复杂度。

练习:

2.2-3 选择排序算法的实现。由于选择排序在最好情况的输入下也要将数组中的值全部都比较一遍,所以其在最好情况和最坏情况下的时间复杂度均为n^2。

#include <windows.h>
#include <iostream>
#include <vector>
using namespace std;
vector<int> select(vector<int>& A){
	int len = A.size();
	for (int i = 0; i < len-1; i++){
		int j = i;
		int tem = A[i];
		int index = i;
		for (; j < len; j++){
			if (A[j] < tem){
				tem = A[j];
				index = j;
			}
		}
		A[index] = A[i];
		A[i] = tem;
	}
	return A;
}
int main(){
	vector<int> A = { 6, 4, 3, 5, 2 };
	vector<int> B = select(A);
	for (int i = 0; i < B.size(); i++)
		cout << B[i];
	cout << endl;
	cin.get();
	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值