快速排序是经常用到的排序算法,也是C++的STL库中用到的一种排序算法,这里手动实现以下,供自己回忆,供他人参考 ~

#include <bits/stdc++.h>
using namespace std;// 找轴点
int partition(vector<int> &vec, int low, int high) {//找轴点int pivot = vec[low];while (low < high) {while (low < high && vec[high] >= pivot) high--;vec[low] = vec[high];  //交换1 while (low < high && vec[low] <= pivot) low++;vec[high] = vec[low];  //交换2  } // 把轴点的值归位vec[low] = pivot;// 返回轴点位置 return low;
} // 快速排序
void quickSort(vector<int> &vec, int low, int high) {if (low >= high) {return;  // 递归出口 }// 找到轴点int mid = partition(vec, low, high);// 递归quickSort(vec, low, mid - 1);quickSort(vec, mid + 1, high);
} int main() {// 初始化一个待排序的向量 vector<int> vec = {1, 8, -6, 12, 5, 9};// 调用自己写的快排 quickSort(vec, 0, vec.size() - 1);// 打印出排序之后的结果 for (auto x : vec) {cout << x << ",";  // -6,1,5,8,9,12, }return 0;
}

快速排序(简单易懂的代码)相关推荐

  1. 快速排序 C++代码实现及其算法思想及时间复杂度分析及优化 恋上数据结构笔记

    文章目录 复习梗概 算法思想 算法复杂度分析及稳定性 如何优化? 快速排序改进版代码C++ 快速排序个人青春版代码 完整代码 复习梗概 算法思想,别的排序名字直接就能让人联想到它的算法思想,唯独快速排 ...

  2. java冒泡从大到小排序代码_Java 冒泡排序、快速排序实例代码

    冒泡排序 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地 进行直到没有再需要交换,也就是说该数列已经排序完成.这 ...

  3. Python 快速排序,代码实现

    快速排序,代码实现 # 基线条件为数组为空或者只包含一个元素 def quickSort(array):# 基线条件为数组为空或者只包含一个元素if len(array) < 2:return ...

  4. 快速排序(代码+详细分析)

    目录 基本思想 图解 代码 分割数组的代码 1.hoare版本 2.挖坑法 3.前后指针法 快排代码 1.递归 2.循环 复杂度与稳定性 时间复杂度 空间复杂度 稳定性 完整代码 注意 基本思想 任取 ...

  5. 快速排序java代码_8 种排序算法与 Java 代码实现!

    1.直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中. 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列. 对第四个数.第五个数--直 ...

  6. 快速排序 c++_算法浅谈——分治算法与归并、快速排序(附代码和动图演示)

    本文始发于个人公众号:TechFlow 在之前的文章当中,我们通过海盗分金币问题详细讲解了递归方法. 我们可以认为在递归的过程当中,我们通过函数自己调用自己,将大问题转化成了小问题,因此简化了编码以及 ...

  7. 排序中减治法算法伪代码_算法浅谈——分治算法与归并、快速排序(附代码和动图演示)...

    在之前的文章当中,我们通过海盗分金币问题详细讲解了递归方法. 我们可以认为在递归的过程当中,我们通过函数自己调用自己,将大问题转化成了小问题,因此简化了编码以及建模.今天这篇文章呢,就正式和大家聊一聊 ...

  8. 快速排序 java代码_java实现快速排序

    一:快速排序的特征 1:冒泡排序的改进 2:内部交换数据 3:分治+递归的思想 4:稳定排序 5:时间复杂度为:O(n*logn) 二:算法的整体思路 1:原始数据:12 11 6 87 23 8 5 ...

  9. 排序算法——快速排序【代码实现】

    伪代码 function quicksort(array)less, equal, greater := three empty arraysif length(array) > 1 pivot ...

最新文章

  1. 【统计学习】概率论与统计学基础
  2. 一文读懂RPA与BPM的区别和联系
  3. python面试题总结(一)字符串反转,写取指定数函数
  4. selinux + sudo +ssh +passwd
  5. 同时两个版本php,查看“实现多个PHP版本共存和互相切换”的源代码
  6. PostgreSQL 最佳实践 - 在线增量备份与任意时间点恢复
  7. 用于jqGrid获取SQL Server中数据的简单分页存储过程及sp_executesql的一点使用方法...
  8. Winform中使用signalr
  9. C++字符读入函数(getchgetchar)
  10. 软件工程专业的论文答辩_软件工程毕业论文答辩PPT模板
  11. xshell如何设置选中复制_Xshell
  12. 二进制负数转换成十进制
  13. 2014年11月合肥黄山宏村之旅
  14. C++Builder:定时器Timer控件
  15. Linux内核 失速(STALL) 警告说明文档翻译
  16. 热修复原理学习(1)热修复技术介绍
  17. 教你一步一步实现图标无缝变形切换
  18. 各种插入函数收集整理
  19. vue-monoplasty-slide-verify自定义拼图出现位置
  20. Eclipse各版本下载地址

热门文章

  1. IT从业人员必须知道的577个网站,小牛导航(super-nb)
  2. 互联网求职如何进行薪酬谈判
  3. 西北大学计算机系王海,西 北 大 学 院(系)课 程 表 - 西北大学经管学院 .doc
  4. 微信小程序输入框上移问题
  5. 经典卷积网络——DenseNet代码实现
  6. 数据库基本知识与关系模型
  7. 怎么转换wxid?? 怎么添加wxid的号码???
  8. 2017 软件工程 个人作业——软件产品案例分析
  9. 大众点评数据,大众点评商家数据 ,大众点评2023爬虫
  10. 【数据安全-01】一起聊聊数据安全