为iOS面试做准备-面试题整理数据结构部分(持续更新中)

答案为自己整理,未经校对,如有纰漏,还望指正指正。

所有题目均存在Github


索引

剑指offer相关题目
数据结构相关题目
其他题目


排序算法

  • 归并排序:将两个或两个以上的有序表合成一个有序表。
    • 算法思想:假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到⎡n/2⎤个长度为2或1的有序子序列;再两两归并,....,如此重复,直到得到哟歌长度为n的有序序列为止。
2-路归并排序过程.png
  • 基数排序:根据关键字中各位的值,通过对待排序纪录进行若干趟“分配”与“收集”来实现排序,是一种借助于多关键字排序的思想对单关键字排序的方法。
    • 算法思想:假设记录的逻辑关键字由d个“关键字”组成,每个关键字可能取rd个值。只要从最低数位关键字起,按关键字的不同值将序列中纪录“分配”到rd个队列中之后再“收集”之,如此重复d次完成排序。其中“基”指的是rd的取值范围。例如:若关键字是数值,且其值都在0≤K≤999范围内,则可把每一个十进制数字看成一个关键字,既可以认为K由3个关键字(K0,K1,K2)组成,其中K0是百位数,K1是十位数,K2是个位数。
链式基数排序过程.png
  • 堆排序:堆排序是一种树形选择排序,在排序过程中,将待排序的纪录的纪录r[1..n]看成一棵完全二叉树的顺序储存结构,利用完全二叉树中双亲节点和孩子节点之间的内在关系,在当前无序的序列中选择关键字最大(或最小)的纪录。
    • 堆定义:n个元素的序列{k1,k2,...,kn}称之为堆,当且仅当满足一下条件
      • ki>=k2i且ki<=k2i+1 或 ki>=k2i且ki<=k2i+1
      • 堆实质上是满足如下性质的完全二叉树:树中所有非终端节点的值均不大于(或均不小于)其左、右孩子节点的值。
堆1.png
  • 堆排序思想(大根堆举例)
    • 按堆的定义将待排序序列r[1..n]调整为大根堆(这个过程成为初建堆),交换r[1]和r[n],则r[n]为关键字最大的纪录。
    • 将r[1..n-1]重新调整为堆,交换r[1]和r[n-1],则r[n-1]为关键字次大的纪录。
    • 循环n-1次,直到交换了r[1]和r[2]为止,得到一个非递减的有序序列r[1..n]。
      • 所以实现堆排序需要解决两个问题

        • 初建堆,将无序序列构建成堆。
        • 调整堆,去掉堆顶元素,如何将剩余元素调整成一个堆。(初建堆会用到调整堆的操作)。
          • 调整堆:图a是个堆,将堆顶元素97和最后一个元素38交换后,如图b。此时,除根节点外,其余节点均满足堆的性质,由此仅需自上至下进行一条路径上的节点调整即可,调整过程间图c、图d。
        堆2.png
  • 建初堆:从最后一个分支节点⎣n/2⎦开始,依次将序号为⎣n/2⎦、⎣n/2⎦-1、...1的节点作为根的子树都调整为堆即可。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容