美文网首页
快速排序(理解)

快速排序(理解)

作者: Admin_Yan | 来源:发表于2020-12-15 14:22 被阅读0次

快速排序,如果想搞清楚快速排序,主要是为了应付简单的习题,比如选择,填空之类的。可以看这个,如果想深入理解,并想掌握代码书写,请移步到:https://www.jianshu.com/p/8f9beb0d28d8
快速排序说白了就是,以一个关键字为基准,比较其他元素与之的大小,然后进行有选择的交换。
废话不多说,上例子。

60 80 55 40 42 85

首先,我们应以60为基准,为什么呢,一般都是把第一个元素当做基准。准备两个指针变量i,j。

i 指向 最左端,j 指向最右端。如下
60   80  55   40   42  85  
i                       j

比较60和85,因为60小于85,且85在60后面,所以不用交换,并且 j 向右移动一位。

60   80  55   40   42  85  
i                   j

继续看60和42,60大于42,且42在60后面,交换位置,并且 i 向后移动一位。结果如下,

42   80  55   40   60  85  
      i             j

继续看80和60,80大于60,且在60前面,交换位置,j向右移动一位。

42   60  55   40   80  85  
      i        j

继续看60和40 , 60大于40,且40 在60 的后面,故交换位置,i 向后移动一位。

42   40  55   60   80  85  
         i     j

看55和60,不用交换,i 向后移一位,此时 i j 重合,第一趟排序结束。

然后进行第二趟排序,以42 为基准,方法如上,直至排成有序数组。

相关文章

  • 快速排序(理解)

    快速排序,如果想搞清楚快速排序,主要是为了应付简单的习题,比如选择,填空之类的。可以看这个,如果想深入理解,并想掌...

  • 快速排序就这么简单

    快速排序就这么简单 从前面已经讲解了冒泡排序、选择排序、插入排序了,本章主要讲解的是快速排序,希望大家看完能够理解...

  • Java冒泡排序,快速排序理解与实现

    经典排序算法中,有好几种排序,下边说下冒泡排序和快速排序的理解与实现,记太多容易混乱; 1.冒泡排序:字面理解,值...

  • 基础☞排序

    三个基础排序之 冒泡,选择,直接插入排序 怎样理解并且快速记忆?对于排序,理解并快速记忆的方法即是用生活实例形象化...

  • 排序

    排序 快速排序 归并排序 计数排序 Python实现 理解 详解 稳定:如果a原本在b前面,而a=b,排序之后a仍...

  • 前端er常用的几种排序方法

    前端常用的排序方法有:冒泡排序,选择排序,快速排序,插入排序 一、冒泡排序 理解冒泡排序 相邻的两个元素依次比较,...

  • 从头开始复习算法之快速排序

    前面说到了三种简单的排序和归并排序,今天中午就开始来谈一谈我理解的快速排序。快速排序是前面冒泡排序的一个改进版本,...

  • 简单理解快速排序

    各大排序算法的时间空间复杂度 定义 快速排序是由冒泡排序进化而来。 在数据集之中,选择一个元素作为"基准"(piv...

  • 理解快速排序算法

    快速排序的时间复杂度为O(nlogn),空间复杂度为O(n)。根据@张小牛 的文章快速排序(Quick Sort)...

  • 快速排序算法

    快速排序 理解: 快速排序两个关键点:选取基准和mark指针基准循环不变,基准与数组元素比较,满足条件mark指针...

网友评论

      本文标题:快速排序(理解)

      本文链接:https://www.haomeiwen.com/subject/dqqbgktx.html