数据结构--快速排序
快速排序是效率比较高的一种排序算法,其思想主要是递归
package mainimport "fmt"func QuickSort(left int, right int, arr *[6]int) {l := leftr := rightpivot := arr[(left + right) / 2]for ; l < r; {for ; arr[l] < pivot; {l++}for ; arr[r] > pivot; {r--}if l >= r {break}arr[r], arr[l] = arr[l], arr[r]if arr[l] == pivot {r--}if arr[r] == pivot {l++}}if l==r {l++r--}if left < r {QuickSort(left, r, arr)}if right > l {QuickSort(l, right, arr)}
}func main(){arr := [6]int{-9, 78, 0, 23, -57, 70}fmt.Println(arr)QuickSort(0, len(arr) - 1, &arr)fmt.Println(arr)}
输出:
[-9 78 0 23 -57 70]
[-57 -9 0 23 70 78]
数据结构--快速排序相关推荐
- 数据结构----快速排序
数据结构----快速排序 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> int quickSort(int a[], ...
- 用数据结构c语言写成绩排序,C语言数据结构 快速排序实例详解
C语言数据结构 快速排序实例详解 一.快速排序简介 快速排序采用分治的思想,第一趟先将一串数字分为两部分,第一部分的数值都比第二部分要小,然后按照这种方法,依次对两边的数据进行排序. 二.代码实现 # ...
- 数据结构——快速排序
系列文章:数据结构与算法系列--从菜鸟到入门 描述 快速排序是基于分治模式的,下面按分治模式来进行分析: 分解: 数组 A[p..r]被划分成两个(可能空)子数组,A[p..q-1]和 A[q+1.. ...
- [数据结构]快速排序
一.问题描述 内部排序是一件具有重大意义的问题,许多项目的实现中都需要用到排序. 我们知道,排序的算法有许多种,每种排序算法的时间复杂度和空间复杂度不尽相同.在解决实际问题时,往往需要根据实际需要选择 ...
- 数据结构 快速排序的三种实现 (hoare版本 挖坑法 前后指针版本)与非递归实现
快速排序 hoare版本 挖坑法 前后指针版本 非递归实现快速排序 快速排序:快速排序算法通过多次比较和交换来实现排序 基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另 ...
- python算法与数据结构-快速排序算法
设定一个中间值,如下所示: low从开始位置找low是找比54小的,26比54小合格 high是从末尾位置找比54大的,如下所示: low和high重合后第一轮循环结束 第一轮递归后的结果如下所示: ...
- python算法与数据结构-快速排序算法(36)
阅读目录 一.快速排序的介绍 二.快速排序的原理 三.快速排序的步骤 四.快速排序的图解 五.快速排序的python代码实现 六.快速排序的C言语代码实现 七.快速排序的时间复杂度 八.快速排序的稳定 ...
- 数据结构 快速排序(详解)
快速排序 1:快速排序的思想 快速排序运用了分治的思想,即通过一趟排序 将序列分为两部分,根据选取的基准, 将比基准小的数放在基准前面,将比基准大的数放在的数放在基准后面:然后对两部分进行递归处理,以 ...
- 重学数据结构——快速排序,二分法查找
每次提起快排,内心中都有点隐隐作痛. 当时腾讯的那个面试官让我写快排的前两遍排序结果,结果,我当时居然没写上来-- 这个,就是所谓的关键时刻掉链子吧,这么经典的快排都不会,真是丢死人了-- 今天在实验 ...
最新文章
- 【洛谷P1508】吃吃吃
- 中国电子学会青少年编程能力等级测试图形化三级编程题:海底寻宝
- Zabbix 企业级监控_
- pygame中Rect(left, top, width, height)的参数详解
- bzoj1715[Usaco2006 Dec]Wormholes 虫洞
- 将k8s制作成3D射击游戏,好玩到停不下来,附源码
- 五个使Java变得更好的功能
- python-标识符与变量-标识符的命名规范
- mysql 查询包含1或者2_Mysql:同一个表上有2个不同的查询,包含count和group by
- Windows XP 所提供的键盘快捷键
- 论学好数学对机器学习的重要性
- 数学建模小白必备手册
- JavaScript 中URL编码方式
- C++Primer 5th_Exercise 习题答案
- 单核工作法图解:事多到事少,拖延变高效
- java 输出大写字母与小写字母
- 《JAVA中的集合框架》
- GA-PH67-UD3-B3换主板
- 解决:cannot import name ‘xxx‘ from ‘xxx‘
- MyBatis中的日志(LOG4J)
热门文章
- 数据中心基础设施:建设与设计
- 机柜服务器选择学问大!
- ML之Hog_HammingDistance:基于Hog特征提取“RGB”图像的768个值的单向vector利用汉明距离算法进行判别
- DL之YoloV3:YoloV3论文《YOLOv3: An Incremental Improvement》的翻译与解读
- 朴素贝叶斯分类器(Navie Bayesian Classifier)中的几个要点(一)
- 逻辑回归模型详解(Logistic Regression)
- java之hibernate之 cascade和inverse
- angular artDialog未及时更新
- row_number() over(partition by的用法
- IOS中UIActionSheet使用方法详解