• 网站首页
  • 要闻
  • 资讯
  • 信息
  • 财经
  • 动态
  • 行情
  • 市场
  • 知识
  • 案例
  • 生活
  • 快速排序算法(什么是快速排序)

    首页 > 信息 > 文章正文 发布时间: 2022-09-23 11:18 阅读()

    1. 如何理解快速排序

    快速排序是对冒泡排序的一种改进, 它是不稳定的。由C. A. R. Hoare在1962年提出的一种划分交换排序,采用的是分治策略(一般与递归结合使用),以减少排序过程中的比较次数,它的最好情况O(nlogn),最坏情况O(n^2),平均时间复杂度为O(nlogn)。分而治之不是一种解决问题的算法,而是一种希望问题分解,将复杂的问题划分为多个简单问题来解决的思想。

     

    快速排序的基本思想:

     

    选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小。然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以达到全部数据变成有序。

     

    快速排序的步骤:

     

    (1) 从数列中挑出一个"基准值"(pivot)。

    (2) 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。

    (3) 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

     

    注意:基准元素/左游标/右游标都是针对单趟排序而言的,也就是说在整个排序过程的多趟排序中,各趟排序取得的基准元素/左游标/右游标一般都是不同的。对于基准元素的选取,原则上是任意的,但是一般我们选取数组中第一个元素为基准元素(假设数组随机分布)。

     

    2. 快速排序的过程描述

    (1)选择最右边的元素为基准数7;

    (2)将小于7的放在左边,大于7的放在右边,然后将基准数放到中间;

    (3)然后再重复操作从左边的数组选择一个基准点2;

    (4)3比2大则放到基准树的右边;

    (5)右边的数组也是一样选择12作为基准数,15比12大所以放到了12的右边;

    (6)最后出来的结果就是从左到右 2 ,3,7,12,15了。


    关键字: 什么 / 快速 / 算法 / 排序 / 
    特别声明:文章内容仅供参考,不造成任何投资建议。投资者据此操作,风险自担。
    广场舞套马杆(同是一首套马杆,你喜欢乌兰托娅唱的,还是喜欢 给老师的建议(家长对老师的意见和建议) 方舟生存进化手机版(方舟生存进化手游怎么快速升级) 旋挖桩施工(旋转桩的施工工艺) 牙周炎的治疗方法(牙周炎吃什么药:牙周炎要怎么治疗) 怎么和女生聊天(和女孩子聊天有什么好的话题) 恋爱的目的(谈恋爱的意义是什么,是为了什么) 如何做电商(对网络不太懂,如何做电商?要详细一些,谢谢) 痛风特效药(痛风食什么药最快好) 强国挑战答题答案(强国答题工具叫什么)

    本站涵盖的内容、图片、视频等模板演示数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

    Copyright © 2015-2022  联系方式:fnabtofjnq@gmail.com