快速排序
排序 快速
2023-09-27 14:25:32 时间
快速排序的基本思想是:通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。
代码:
#include<iostream> #include<algorithm> using namespace std; int Quick_mid(int a[],int k,int n){ int m = k; int i = k,j = n; while (i < j) { while (a[i] < a[m]) i++; while (a[j] > a[m]) j--; swap(a[i], a[j]); } // swap(a[i], a[j]); // swap(a[m], a[j]); return j; } void Quick_Sort(int a[],int low,int high){ int m; if (low < high) { m = Quick_mid(a, low, high); //找出a[m]的位置 Quick_Sort(a, low, m-1); Quick_Sort(a, m + 1,high); } } int main(){ int a[] = { 11, -5,49, 23, 6,87, 53, 18, 28, 37, 46, 36, 0,13,51, 33, 57, 42, 77 }; int n = (sizeof(a) / sizeof(a[0])); Quick_Sort(a,0,n-1); for (int i = 0; i < n; i++) cout << a[i] << ' '; }
#include<iostream> #include<algorithm> using namespace std; int Quick_mid(int a[],int k,int n){ int m=a[k]; int i = k,j = n; while (i < j) { while ((i<j)&&(a[j] >= m)) j--; swap(a[i], a[j]); while ((i<j)&&(a[i] <= m)) i++; swap(a[i], a[j]); } return i; } void Quick_Sort(int a[],int low,int high){ int m; if (low < high) { m = Quick_mid(a, low, high); Quick_Sort(a, low, m-1); Quick_Sort(a, m + 1,high); } } int main(){ int a[] = { 11, -5,49, 23, 6,87, 53, 18, 28, 37, 46, 36, 0,13,51, 33, 57, 42, 77 }; int n = (sizeof(a) / sizeof(a[0])); Quick_Sort(a,0,n-1); for (int i = 0; i < n; i++) cout << a[i] << ' '; }
相关文章
- Linux多线程实践(7) --多线程排序对比
- 数据结构基础(5) --归并排序
- 数据结构基础(4) --快速排序
- 八大排序算法的Java实现(上)
- C/C++排序算法(三)—— 冒泡排序和快速排序
- php四种基础算法:冒泡,选择,插入和快速排序法
- fastjson排序 Map多层嵌套转换自动排序问题终极解决方案
- 推荐系统-排序算法:常用评价指标:NDCG、MAP、MRR、HR、ILS、ROC、AUC、F1等
- 排序方法(冒泡排序、选择排序、快速排序qsort)
- 快速排序 分数 25
- php算法之快速排序
- C语言:快速排序算法的应用
- C语言:快速排序算法案例
- 对大数据量进行排序--位图法
- 排序二 快速排序
- mysql 按照计算值排序
- 算法-排序算法-快速排序
- 10-8-简单选择排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版
- linux 按文件大小排序
- LeetCode_拓扑排序_BFS_中等_210.课程表 II
- 算法与数据结构 第2章 排序基础 上
- 现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[],int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法
- 将包含中文的数组按拼音首字母排序
- js--数组排序
- 算法导论 第6章 堆排序(简单选择排序、堆排序)
- 一步一步写算法(之快速排序)
- 算法 : 快速排序
- 算法 : 归并排序
- 785. 快速排序
- 图解快速排序算法
- 快速排序
- 细致分析快速排序!
- 快排图文详解:快速排序算法的实现 - 【双边循环法与单边循环法 & 递归与非递归(栈的方式)的实现】
- 发现一个理解 快速排序和堆排序 很好的 PPT文件 :分享
- mysql 按时间降序排序、时间为空的排在前面,IF(ISNULL(time), 0 ,1) 使用
- leetcode 912 排序数组