最常用的排序--快速排序

引言:

    最近一直在接触算法有关的东西,数据结构中有讲到,老师也经常讲,但对于快速排序的理解一直不是很好,昨天从图书馆借了一本《啊哈!算法》,看了里面的讲解,这才理解,下面进行一下总结。


简介:

    之所以称为快速排序,是因相对于其他排序来说效率高,速度快,主要是采用了"二分"的思想,跟着我来体会一下吧。


过程:

   在快速排序过程中,需要随便找一个"基准数"(相当于一个参考)。

   将下列数进行从小到大排序:6、1、2、7、9、3、4、5、10、8

  一、 方面起见,取第一个数为基准数也就是6,我们将比基准数大的放到6右边,比基准数小的放到6左边。

   


   1、小i和小j作为"探测员"分别从左右两边寻找比6大和比6小的数,因为基准数6在左边,所以小j先开始走,走到5停了下来,小i开始走,走到7停了下来,进行交换数据。

   


   2、继续探测,小j往前走到4停了下来,小i往前走到9停了下来,再次进行交换。

    

  

   3、继续探测,小j往前走到3停下,小i往前走碰到了小j,哇,缘分啊,终于相遇了,站在3的位置握手拥抱,那探测的工作就结束了。3和基准数6互换位置。

   

   得到了比基准数小的在基准数左边,比基准数大的在基准数右边。

   第一论探测结束!

  

  二、第二轮开始

      基准数6左边再次进行探测。

      1、以3为基准数,进行一轮探测

        

      2、基准数3的左右再次进行得到

        

      现在的排序为:

      


  三、第三轮开始

      基准数6右边再次进行探测。

      

      

    得到最后的结果:

    


总结:

    现在明白了排序的过程,接下来要向代码转化,代码运行出来,这才算真正地完成。








评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值