[算法导论]2.2节编程练习C++实现
2016-09-24 16:45
405 查看
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;
}
练习:
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;
}
相关文章推荐
- [算法导论]2.1节编程练习C++实现
- C/C++编程小练习 计算10亿之内的素数和(合数筛选算法实现)
- 【算法导论】22.7 无向图的广度优先搜索--C++实现
- C++ 归并排序实现(算法导论)
- C++实现算法导论十五章动态规划之钢条分割问题
- 算法导论 6章堆排序的代码实现和部分课后练习
- 【算法导论】用C++实现快速排序
- 编程练习------C/C++分别实现字符串与整数的转换
- 算法导论-第23章-最小生成树:Prime算法(基于vector)的C++实现
- 算法导论 第8章 线性时间排序 C++实现
- C/C++编程小练习 函数实现学生管理系统
- 【算法导论】c++实现计数排序
- c++堆排序实现(heapsort) (算法导论)
- [算法导论] 快速排序以及最大堆的C++实现
- 字符串匹配算法的C/C++实现-算法导论
- C++ 归并排序实现(算法导论)
- 【算法导论】二叉查找树的操作C++实现
- 【算法导论】c++实现堆排序
- C++快速排序实现(quicksort) (算法导论)
- 算法导论——红黑树插入算法C++实现