快速排序、冒泡排序、选择排序 C++实现
来源:互联网 发布:rna seq数据分析流程 编辑:程序博客网 时间:2024/06/01 08:08
#include#include using namespace std;//QuickSort//from low to high//一趟QuickSortint Partition(vector &L, int low, int high){int pivotkey = L[low];while (low < high)//以前后指针相遇作为一次QuickSort结束的标志{while (low < high && pivotkey <= L[high])//由后到前搜索--high;L[low] = L[high];while (low < high && pivotkey >= L[low])//由前到后搜索++low;L[high] = L[low];}L[low] = pivotkey;return low;}//递归式实现void QSort(vector &L, int low, int high){if (low < high){int pivotloc = Partition(L, low, high);QSort(L, low, pivotloc - 1);QSort(L, pivotloc + 1, high);}}void QuickSort(vector &L){QSort(L, 0, L.size()-1);//数据从L[0]开始,L[L.size()-1]结束}//BubbleSort//from low to highvoid BubbleSort(vector &L){for (int i = 0; i < L.size(); ++i){for (size_t j = 0; j < L.size()-1-i; ++j){if (L[j] > L[j+1]){int tem = L[j];L[j] = L[j+1];L[j+1] = tem;}}}}//SelectSort//from low to highvoid SelectSort(vector &L){for (size_t i = 0; i < L.size(); i++){int min = i;for (size_t j = i+1; j < L.size(); j++){if (L[min] >L[j]){min = j;}}int tem = L[i];L[i] = L[min];L[min] = tem;}}int main(){vector L{49,38,65,97,76,13,27,49};SelectSort(L);for (auto &i : L)cout << i << " ";cout << endl;system("pause");}
阅读全文
0 0
- C语言分别实现冒泡排序、快速排序、选择排序
- 选择排序&插入排序&冒泡排序&快速排序算法实现
- java实现冒泡排序,插入排序,选择排序,快速排序
- python 实现插入排序,冒泡排序,快速排序,选择排序
- 【排序】快速排序 冒泡排序 选择排序
- 选择排序 冒泡排序 C语言实现
- 排序-冒泡,快速(选择排序)
- 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序java实现
- 【C语言】冒泡排序,选择排序,快速排序
- 冒泡排序 选择排序 快速排序(C语言)
- C——冒泡排序、快速排序,选择排序
- 快速排序,冒泡排序,直接选择排序的算法实现
- 冒泡排序-选择排序-快速排序(PHP实现)
- 快速排序、冒泡排序、选择排序 C++实现
- 冒泡排序,选择排序,快速排序的Java实现
- 快速,冒泡,选择排序
- 冒泡,选择,快速排序
- 选择,冒泡,快速排序
- promise wrap ajax
- Qt 学习 第4节 多线程
- 【Maven】安装配置(二)
- 微信红包系统设计 & 优化
- iOS : 通过路径读取文件的几种方法
- 快速排序、冒泡排序、选择排序 C++实现
- JSP(一)
- html/css DOM脱离文档流的几种情况
- jenkins自动打包报错:cannot find symbol
- java重写equals方法需要注意的几点
- Python中括号的区别及用途
- 【Maven】资源库说明(三)
- 进程间通信--管道
- Linux下查看某一个程序运行所占用的内存