| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C++实现快速排序 -> 正文阅读 |
|
[C++知识库]C++实现快速排序 |
1)选择一个基准元素,通常选择第一个元素或者最后一个元素, 2)通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的?元素值比基准值大。 3)此时基准元素在其排好序后的正确位置 4)然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。 #include #include using namespace std; void swap(int& a, int& b) { int temp = a; a = b; b = temp; } //划分函数 int partition(vector& arr, int low, int high) { int i = low - 1; int j = high; int pivot = arr[high]; while (1) { while (i while (j >= 0 && arr[--j] > pivot); if (i < j) swap(arr[i], arr[j]); else break; } //把枢纽元素放到正确的位置上 swap(arr[i], arr[high]); return i; } //快速排序 void qsort(vector& arr, int low, int high) { if (low < high) { int mid = partition(arr, low, high); qsort(arr, low, mid - 1); qsort(arr, mid + 1, high); } } //快速排序入口 void quick_sort(vector& arr, int n) { qsort(arr, 0, n - 1); } int main() { vector arr = { 9,5,2,11,12,4,3,1,7 }; int n = 9; quick_sort(arr, n); for (int i = 0; i < n; i++) { cout << arr[i] << " "; } return 0; } |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 9:36:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |