常见排序算法的实现
来源:互联网 发布:推荐算法 pdf 编辑:程序博客网 时间:2024/05/21 18:37
闲着无聊,用c++实现几个排序,代码如下:
一、冒泡排序
void bubbleSort(std::vector<int> vec){if (vec.empty()) return;for (int i = 0; i < vec.size(); i++){for (int j = vec.size() - 1; j > i; j--){if (vec.at(j) < vec.at(j - 1)){swap(vec[j], vec[j - 1]);}}}}
中心思想:冒泡排序很简单,从后往前相邻两个数字作比较,把较小的数字排在前边。两层循环,外层保证遍历容器内所有数字作为主对比对象,和未被选定的其他元素(内层循环保证)对比较。
二、快速排序
void quickSort(std::vector<int> vec,int beginPos,int endPos){if (vec.empty() || beginPos >= endPos) return;int low = beginPos;int high = endPos;int flag = vec.at(low);while (low < high){while (low < high && vec.at(high) >= flag){high--;}swap(vec[low], vec[high]);while (low < high&&vec.at(low) <= flag){low++;}swap(vec[low], vec[high]);}quickSort(vec, beginPos, low - 1);quickSort(vec, low + 1, endPos);}中心思想:快速排序用到的主要思想是递归。在数组中选择一个数字作为筛选条件,这里选择第一个数字;然后分别从后向前h(下标大的位置向下标小的位置,用high表示)和从前往后(用low表示)和选定作为筛选条件的元素比较大小,大的放前边(或后边),小的放在另一边;直到low和high相遇。然后分别在筛选出来的区间重复上边的操作,直到每个区间都只剩一个数字。
阅读全文
0 0
- 常见排序算法的实现
- 常见的排序算法实现
- 常见排序算法的实现
- 常见排序算法的实现
- 常见排序算法的实现
- 常见排序算法的实现
- 常见排序算法的实现
- 常见排序算法的实现
- 常见的排序算法实现
- 常见排序算法的实现
- 常见排序算法实现
- .Net中实现常见的排序算法
- 面试必备:常见排序算法的实现
- 常见排序算法的实现(四)
- C#实现的常见排序算法
- 面试必备:常见排序算法的实现
- 各种常见的排序算法及其实现
- 各种常见的排序算法及其实现 .
- 如何修改tomcat默认的8080端口号
- AIX下创建ASM磁盘组
- Intellij IDEA打包文件manifest文件信息有误
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)
- springboot(2):综合开发
- 常见排序算法的实现
- js字符串驼峰命名
- liunx下安装jdk8并配置环境变量
- 2.Python
- virtualbox win10 共享文件夹
- 基于JavaMail的Java邮件发送:复杂邮件发送
- 云星数据---Scala实战系列(精品版)】:Scala入门教程045-Scala实战源码-Scala Map操作
- HttpClient 的GET(带参数)、POST请求方式,工具类方法
- http协议 笔记