快速排序(简单易懂的代码)
快速排序是经常用到的排序算法,也是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;
}
快速排序(简单易懂的代码)相关推荐
- 快速排序 C++代码实现及其算法思想及时间复杂度分析及优化 恋上数据结构笔记
文章目录 复习梗概 算法思想 算法复杂度分析及稳定性 如何优化? 快速排序改进版代码C++ 快速排序个人青春版代码 完整代码 复习梗概 算法思想,别的排序名字直接就能让人联想到它的算法思想,唯独快速排 ...
- java冒泡从大到小排序代码_Java 冒泡排序、快速排序实例代码
冒泡排序 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地 进行直到没有再需要交换,也就是说该数列已经排序完成.这 ...
- Python 快速排序,代码实现
快速排序,代码实现 # 基线条件为数组为空或者只包含一个元素 def quickSort(array):# 基线条件为数组为空或者只包含一个元素if len(array) < 2:return ...
- 快速排序(代码+详细分析)
目录 基本思想 图解 代码 分割数组的代码 1.hoare版本 2.挖坑法 3.前后指针法 快排代码 1.递归 2.循环 复杂度与稳定性 时间复杂度 空间复杂度 稳定性 完整代码 注意 基本思想 任取 ...
- 快速排序java代码_8 种排序算法与 Java 代码实现!
1.直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中. 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列. 对第四个数.第五个数--直 ...
- 快速排序 c++_算法浅谈——分治算法与归并、快速排序(附代码和动图演示)
本文始发于个人公众号:TechFlow 在之前的文章当中,我们通过海盗分金币问题详细讲解了递归方法. 我们可以认为在递归的过程当中,我们通过函数自己调用自己,将大问题转化成了小问题,因此简化了编码以及 ...
- 排序中减治法算法伪代码_算法浅谈——分治算法与归并、快速排序(附代码和动图演示)...
在之前的文章当中,我们通过海盗分金币问题详细讲解了递归方法. 我们可以认为在递归的过程当中,我们通过函数自己调用自己,将大问题转化成了小问题,因此简化了编码以及建模.今天这篇文章呢,就正式和大家聊一聊 ...
- 快速排序 java代码_java实现快速排序
一:快速排序的特征 1:冒泡排序的改进 2:内部交换数据 3:分治+递归的思想 4:稳定排序 5:时间复杂度为:O(n*logn) 二:算法的整体思路 1:原始数据:12 11 6 87 23 8 5 ...
- 排序算法——快速排序【代码实现】
伪代码 function quicksort(array)less, equal, greater := three empty arraysif length(array) > 1 pivot ...
最新文章
- 【统计学习】概率论与统计学基础
- 一文读懂RPA与BPM的区别和联系
- python面试题总结(一)字符串反转,写取指定数函数
- selinux + sudo +ssh +passwd
- 同时两个版本php,查看“实现多个PHP版本共存和互相切换”的源代码
- PostgreSQL 最佳实践 - 在线增量备份与任意时间点恢复
- 用于jqGrid获取SQL Server中数据的简单分页存储过程及sp_executesql的一点使用方法...
- Winform中使用signalr
- C++字符读入函数(getchgetchar)
- 软件工程专业的论文答辩_软件工程毕业论文答辩PPT模板
- xshell如何设置选中复制_Xshell
- 二进制负数转换成十进制
- 2014年11月合肥黄山宏村之旅
- C++Builder:定时器Timer控件
- Linux内核 失速(STALL) 警告说明文档翻译
- 热修复原理学习(1)热修复技术介绍
- 教你一步一步实现图标无缝变形切换
- 各种插入函数收集整理
- vue-monoplasty-slide-verify自定义拼图出现位置
- Eclipse各版本下载地址