美文网首页安卓考点脉络
【算法】排序(快排、堆排、归并)、查找

【算法】排序(快排、堆排、归并)、查找

作者: 小呀么小黄鸡 | 来源:发表于2018-02-24 10:07 被阅读78次

快速排序

具体做法

首先选第一个待排序元素作为枢轴,根据枢轴将待排序列分为两个子列,这两个子列必须满足一下条件:一个子列的元素关键字都不大于枢轴的关键字,另一个子列的元素关键字都不小于枢轴,接着对两个子列分别进行累死操作——选定枢轴并进行划分。这样不断划分知道所有子列仅包含0或个元素位置。

快排是一个递归算法,假设待排序列A
(1)如果A中元素个数为0或1,则返回;否则,继续;
(2)选取A中的一个元素p作为枢轴
(3)讲A中剩下的元素“划分”成两个不相交的集合:A1——key比枢轴的key小的;A2——key比枢轴的key大的;
(4)QuickSort(A1),p,QuickSort(A2)
划分具体做法:设置两个标志low和high,分别指向A中的第一个元素和最后一个元素。首先,从high所指位置起向前搜索,找到第一个关键字小于p.key的元素和枢轴p交换,然后从low所指位置起向后搜索,找到第一个关键字大于p.key的元素和枢轴p交换,重复这两步直至low=high为止。

相关文章

  • 【算法】排序(快排、堆排、归并)、查找

    快速排序 具体做法 首先选第一个待排序元素作为枢轴,根据枢轴将待排序列分为两个子列,这两个子列必须满足一下条件:一...

  • 算法

    查找:二分查找 排序 快排基于快排思想解决的问题partition,第k大的数字 归并 几种排序算法的时间复杂度,...

  • all

    算法与数据结构 常见算法类型 排序算法(冒泡、插入、选择、快排、希尔、堆排、归并、桶排、基数、计数)、字符串操作、...

  • 排序

    八大排序算法 一、归并排序 递归及非递归的JAVA实现 二、快速排序 快排算法JAVA实现 三、堆排序 堆排序堆排...

  • 数据结构与算法-排序/二分查找

    算法中基础中的基础,排序/二分查找 排序 1.快排QuickSort 归并排序 堆排序 1. 二分查找

  • 排序(二)堆排序

    上次写到了快排,接着往下讲。O(nlogn)级别的算法除了上次说的快排,归并,还有推排序。今天从先推排序开始写。堆...

  • 基本排序算法

    冒泡算法 简单选择排序 堆排序 快排 归并排序

  • 归并排序

    归并排序(Merge Sort): 归并排序是一个相当“稳定”的算法对于其它排序算法,比如希尔排序,快速排序和堆排...

  • 算法

    【原创】以下是自己写的某些算法的JS实现 快排 (一) 快排(二) 希尔排序 插排 二分插排 归并排序

  • 数据结构与算法

    今天任务:快排,冒泡,堆排,归并排序,二分查找,二叉树的遍历,二叉树增删查改晚上回去写总结,算法才是灵魂,数据结构...

网友评论

    本文标题:【算法】排序(快排、堆排、归并)、查找

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