作家
登录

在Object-C中学习排序算法

作者: 来源: 2017-08-06 12:49:35 阅读 我要评论

  •             i++; 
  •             lt++; 
  •         }else if  ([self compareWithBarOne:array[i] andBarTwo:v] == NSOrderedDescending){ 
  •             self.comparator(nil, nil); 
  •             [self mb_exchangeWithIndexA:i indexB:gt - 1]; 
  •             gt--; 
  •         }else//array[i] == v 
  •             i++; 
  •         } 
  •     } 
  •     self.comparator(nil,nil); 
  •     [self mb_exchangeWithIndexA:l indexB:lt]; 
  •     [self mb_quick3WaysSort:array indexL:l indexR:lt-1]; 
  •     [self mb_quick3WaysSort:array indexL:gt indexR:r]; 
  •       
  • 堆排序(Heapsort)是指应用堆这种数据构造所设计的一种排序算法。聚积是一个近似完全二叉树的构造,并同时知足聚积的性质:即子结点的键值或索引老是小于(或者大年夜于)它的父节点。堆排序可以说是一种应用堆的概念来排序的选择排序。分为两种办法:

    大年夜顶堆:每个节点的值都大年夜于或等于其子节点的值,在堆排序算法顶用于升序分列;

    小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法顶用于降序分列;

    堆排序的平均时光复杂度为 Ο(nlogn)。

    1. 创建一个堆 H[0……n-1];

    1.算法步调

    3. 把堆的尺寸缩小 1,并调用 shift_down(1),目标是把新的数组顶端数据调剂到响应地位;

    4. 反复步调 2,直到堆的尺寸为 1

    2.代码实现

    收结与收成

    总结: 

    在此次从新进修数据构造与算法的过程中笔者充分熟悉到了进修这些所谓的**基本常识**的重要性,懂得了要想进一步供给iOS开辟的程度恰好不克不及忽视基本环节,也正好在此次进修顶用到了图的深度遍历解决了在研究埋点过程中找到回溯源的问题。

    收成:

    > 1. 根本排序的白板编程

    > 2. runtime的添加分类

    > 3. runtime的objc_msgSend()

    > 4. 深拷贝竽暌闺浅拷贝

    > 5. GCD旌旗灯号量的应用

    参考与浏览

    * [一本关于排序算法的 GitBook 在线书本 《十大年夜经典排序算法》,应用 JavaScript & Python & Go 实现](https://github.com/hustcc/JS-Sorting-Algorithm)

    * [在 JavaScript 中进修数据构造与算法](https://juejin.im/post/594dfe795188250d725a220a)

    * [排序动画](https://github.com/JiongXing/JXSort)

    【编辑推荐】

    1. iOS收集层架构设计分享
    2. ReactNative之原生模块开辟并宣布--iOS篇
    3. iOS 10概念作品来了:阴郁模式看上去高大年夜上
    4. ios10新增9大年夜功能Gif详解,听肾哭的声音
    5. iOS若何进行优化项目?
    【义务编辑:张子龙 TEL:(010)68476606】

    排堆序

    快速排序



      推荐阅读

      关于大数据,你应该知道的75个专业术语

    上篇(25 个术语)如不雅你刚接触大年夜数据,你可能会认为这个范畴很难以懂得,无大年夜下手。不过,你可以大年夜下面这份包含了 25 个大年夜数据术语的清单入手,那么我们开端吧。算法(Algorithm):算法可以懂得>>>详细阅读


    本文标题:在Object-C中学习排序算法

    地址:http://www.17bianji.com/lsqh/36561.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)