快速排序是效率比较高的一种排序算法,其思想主要是递归

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]

数据结构--快速排序相关推荐

  1. 数据结构----快速排序

    数据结构----快速排序 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> int quickSort(int a[], ...

  2. 用数据结构c语言写成绩排序,C语言数据结构 快速排序实例详解

    C语言数据结构 快速排序实例详解 一.快速排序简介 快速排序采用分治的思想,第一趟先将一串数字分为两部分,第一部分的数值都比第二部分要小,然后按照这种方法,依次对两边的数据进行排序. 二.代码实现 # ...

  3. 数据结构——快速排序

    系列文章:数据结构与算法系列--从菜鸟到入门 描述 快速排序是基于分治模式的,下面按分治模式来进行分析: 分解: 数组 A[p..r]被划分成两个(可能空)子数组,A[p..q-1]和 A[q+1.. ...

  4. [数据结构]快速排序

    一.问题描述 内部排序是一件具有重大意义的问题,许多项目的实现中都需要用到排序. 我们知道,排序的算法有许多种,每种排序算法的时间复杂度和空间复杂度不尽相同.在解决实际问题时,往往需要根据实际需要选择 ...

  5. 数据结构 快速排序的三种实现 (hoare版本 挖坑法 前后指针版本)与非递归实现

    快速排序 hoare版本 挖坑法 前后指针版本 非递归实现快速排序 快速排序:快速排序算法通过多次比较和交换来实现排序 基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另 ...

  6. python算法与数据结构-快速排序算法

    设定一个中间值,如下所示: low从开始位置找low是找比54小的,26比54小合格  high是从末尾位置找比54大的,如下所示: low和high重合后第一轮循环结束 第一轮递归后的结果如下所示: ...

  7. python算法与数据结构-快速排序算法(36)

    阅读目录 一.快速排序的介绍 二.快速排序的原理 三.快速排序的步骤 四.快速排序的图解 五.快速排序的python代码实现 六.快速排序的C言语代码实现 七.快速排序的时间复杂度 八.快速排序的稳定 ...

  8. 数据结构 快速排序(详解)

    快速排序 1:快速排序的思想 快速排序运用了分治的思想,即通过一趟排序 将序列分为两部分,根据选取的基准, 将比基准小的数放在基准前面,将比基准大的数放在的数放在基准后面:然后对两部分进行递归处理,以 ...

  9. 重学数据结构——快速排序,二分法查找

    每次提起快排,内心中都有点隐隐作痛. 当时腾讯的那个面试官让我写快排的前两遍排序结果,结果,我当时居然没写上来-- 这个,就是所谓的关键时刻掉链子吧,这么经典的快排都不会,真是丢死人了-- 今天在实验 ...

最新文章

  1. 【洛谷P1508】吃吃吃
  2. 中国电子学会青少年编程能力等级测试图形化三级编程题:海底寻宝
  3. Zabbix 企业级监控_
  4. pygame中Rect(left, top, width, height)的参数详解
  5. bzoj1715[Usaco2006 Dec]Wormholes 虫洞
  6. 将k8s制作成3D射击游戏,好玩到停不下来,附源码
  7. 五个使Java变得更好的功能
  8. python-标识符与变量-标识符的命名规范
  9. mysql 查询包含1或者2_Mysql:同一个表上有2个不同的查询,包含count和group by
  10. Windows XP 所提供的键盘快捷键
  11. 论学好数学对机器学习的重要性
  12. 数学建模小白必备手册
  13. JavaScript 中URL编码方式
  14. C++Primer 5th_Exercise 习题答案
  15. 单核工作法图解:事多到事少,拖延变高效
  16. java 输出大写字母与小写字母
  17. 《JAVA中的集合框架》
  18. GA-PH67-UD3-B3换主板
  19. 解决:cannot import name ‘xxx‘ from ‘xxx‘
  20. MyBatis中的日志(LOG4J)

热门文章

  1. 数据中心基础设施:建设与设计
  2. 机柜服务器选择学问大!
  3. ML之Hog_HammingDistance:基于Hog特征提取“RGB”图像的768个值的单向vector利用汉明距离算法进行判别
  4. DL之YoloV3:YoloV3论文《YOLOv3: An Incremental Improvement》的翻译与解读
  5. 朴素贝叶斯分类器(Navie Bayesian Classifier)中的几个要点(一)
  6. 逻辑回归模型详解(Logistic Regression)
  7. java之hibernate之 cascade和inverse
  8. angular artDialog未及时更新
  9. row_number() over(partition by的用法
  10. IOS中UIActionSheet使用方法详解