【初探】数据结构与算法
i丶scream
Small thing follow your head, big thing follow your heart.
展开
-
堆-堆排序学习总结
1.堆是什么? 堆是一种特殊的完全二叉树. 其中, 堆又分为最大堆和最小堆. 最大堆: 任一父节点的值都比左右节点的值大. 最小堆: 任一父节点的值都比左右节点的值小.2. 堆排序的过程: A. 最小堆升序排序: (最大堆降序排序类似) 建立最小堆->保存根节点的值(或输出) ->把最后一个节点的值保存到原创 2016-03-28 09:41:54 · 444 阅读 · 0 评论 -
哈希表学习总结
什么是哈希表, 哈希函数, 关键字? 关键字: 用户数据 哈希表(Hash Table): 也叫散列表, 是根据关键码值(Key Value) 直接进行数据访问的数据结构. 哈希函数: 也叫散列函数, 是key和[结果]的一种关系. k = f(k);哈希表有什么用途?用于加密算法;用于数字签名;用于文件校验. 在实际应用中, 哈希表的查找性能是极好的. 在合理的假设下, 它查找一原创 2016-04-15 09:37:16 · 707 阅读 · 0 评论 -
快速排序及三向切分快速排序
1.快速排序 是一种分治的排序算法。切分元素的选择关系到算法的性能,因此在排序前,应先把数据打乱。 2.快速排序的过程: 1). 选择切分元素(一般选择切分区域第一个位置 k )。 2). i 指向第二个元素(第一个 k ),j指向最后一个元素。 3). i 向右移动,遇到大于等于切分元素 k 的元素时,停下。 4). j 向左移动,遇到小于等于 k 的元素时,停下。原创 2016-05-15 00:05:59 · 3285 阅读 · 0 评论 -
归并排序-自顶向下/自底向上
归并排序[二路]归并排序是将要排序数组递归地分成两半分别排序,然后将结果合并起来,完成排序. 归并排序是最理想的直接排序算法(运行时间与NlogN成正比),执行过程具有稳定性. 归并排序可以处理数百万甚至更大规模的数组, 这是插入排序或选择排序做不到的. 归并排序示意图: 1). 把前面部分元素和后面部分元素比较,小的放入结果数组.(注意此处的前半部分/后半部分已经原创 2016-05-15 00:00:58 · 1446 阅读 · 0 评论 -
【初探】快速排序学习总结
1.什么是快速排序? 快速排序的思想是: 以一个元素K的值为基准, 把要排序数据分为”比K大的”和”比K小的”两部分. 再对这两部分执行相同操作,整个过程可以递归执行.2.快速排序的时间复杂度和空间复杂度? 时间复杂度:O(n*log2n)~O(n2) 空间复杂度:O(log2n)~O(n)3.示例: k 4 2 5 9 1 8 3 6原创 2016-04-15 10:53:14 · 403 阅读 · 0 评论 -
【初探】排序算法
日期:20160626作者:i.sshehttps://github.com/isshe 【初探】排序算法 1. 基础问题1.1 各个常见排序算法的思想及关键代码? 2. 基础问题解答 2.1 各个排序算法的思想及关键代码?代码链接:https://github.com/isshe/Blog/tree/master/7_sort20160624选择排序的思想:A. 从数据中选择一个最小/原创 2016-06-26 16:02:36 · 385 阅读 · 0 评论