算法导论学习之sort
来源:互联网 发布:在淘宝上如何粘贴链接 编辑:程序博客网 时间:2024/05/17 00:13
/************************************************************************//* insert sort algorithm *//* pbImage 27/08/2013*//************************************************************************/#include <iostream>#include <vector>using namespace std;void InsertionSort(vector<int> &data){int i = 0, key = 0;for (int j = 1; j < data.size(); j++){key = data[j];i = j - 1;while( i >= 0 && data[i] > key){data[i + 1] = data[i];i = i - 1;}data[i + 1] = key;}return;}int main(){int data[10] = {11, 2, 5, 21, 3, 90, 24, 8, 73, 10};vector< int > test_data(10);for (int i = 0; i < 10; i++){test_data[i] = data[i];}cout<<"Before sort:"<<endl;for (int i = 0; i < 10; i++){cout<<test_data[i]<<'\t';}cout<<endl;InsertionSort(test_data);cout<<"After sort:"<<endl;for (int i = 0; i < 10; i++){cout<<test_data[i]<<'\t';}cout<<endl;return 0;}
/*选择排序*/void SelectionSort(vector<int> &data){for (int i = 0; i < data.size() - 1; i++){int min_val = data[i];int min_id = i;for (int k = i + 1; k < data.size(); k++){if (data[k] < min_val){min_val = data[k];min_id = k;}}if (min_id != i){min_val = data[i];data[i] = data[min_id];data[min_id] = min_val;}}return;}
循环不变式的三大性质:
1. 初始化:在循环的第一轮迭代开始之前,正确;
2. 保 持:在某次迭代开始前若正确,那么下一次迭代之前,也正确;
3. 终 止:循环结束时,不变式给我们一个有用的性质,去判定算法是否正确。
- 算法导论学习之sort
- 《算法导论》学习之基数排序
- 【算法导论学习-015】基数排序(Radix sort)
- 算法学习之Bucket Sort
- 算法学习之算法导论理解
- 算法导论学习之加权中位数
- 《算法导论》学习之计数排序
- 算法导论学习之插入排序
- 算法导论学习之归并排序
- 算法导论之快速排序---学习笔记
- 算法导论学习记录之第一章
- 算法导论学习之--二叉搜索树
- 机器学习之分类算法导论
- 算法导论之红黑树的学习
- 算法导论学习笔记之摊还分析
- 算法导论学习之分治法
- 算法导论学习之快速排序
- 算法导论学习之线性时间排序
- 关于z-index的那些事儿
- shell脚本文件的三种执行方式
- linux内核学习笔记2
- 对js的类进行面向对象扩展,我已经完成,希望高手来探讨
- SQL查询每门科目的成绩大于80的学生名字
- 算法导论学习之sort
- Java 多线程 并发编程
- 工作日志_三方系统维护记录
- UVA 11137 Ingenuous Cubrency(dp + 完全背包)
- S3C2440之中断控制
- Linux中的中断处理
- Poj 1511 Invitation Cards -- spfa
- Java学习之道:java实现文档的在线阅读功能
- printf 输出格式设置\033[47\033[5m 与-8.8s