摘要: 插入排序(只记录代码不作详细分析) 插入排序将输入的元素一个个插入到已排序的队列里,对比是由后往前 代码: func insertSort(_ arr: inout [Elem]) { for i in 1...arr.count-1 { let tmp = arr[i] for j in ... 阅读全文
posted @ 2017-02-03 15:41 KbDaVinci 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 一:什么是堆? 堆可视为 “以数组方式存储的一棵完全二叉树” 堆又分为最大堆和最小堆, 最大堆就是对于整个二叉树中的每一个节点都满足:节点的键值比其左右子节点的键值都要大,对应的最小堆则是:节点的键值比其左右子节点的键值都要小 二:堆排序的思路 对于一个存储最大堆的数组arr(长度为size), 根节点arr[0]是所有节点中键值最大,将arr[0]和arr[s... 阅读全文
posted @ 2017-02-03 14:03 KbDaVinci 阅读(397) 评论(0) 推荐(0) 编辑