
数据结构
一MasonChen
这个作者很懒,什么都没留下…
展开
-
C++复习之HashTable的简单实现
hashtable :本文中采用开链法( separate chaining )来处理 “ 冲突 ” ( collision ),而且 hashtable只存储唯一的元素,不存在重复。原创 2016-07-29 11:52:28 · 1178 阅读 · 0 评论 -
C++复习之冒泡排序&插入排序&希尔排序
冒泡排序时间复杂度最好的情况为 O(n), 最坏的情况是 O(n^2) ,基本思想是 : 两两比较相邻记录的关键字 , 如果反序则交换 “`cpp void bubbleSort1(int *arr, int n) { for (int i = 0; i < n; i++) { for (int j = 1; j < n - i; j++) {原创 2016-07-29 17:21:59 · 265 阅读 · 0 评论 -
C++复习之简单选择排序&归并排序
简单选择排序 (simple selection sort) 就是通过 n-i 次关键字之间的比较 , 从 n-i+1个记录中选择关键字最小的记录 , 并和第 i(1<=i<=n) 个记录交换之尽管与冒泡排序同为 O(n^2), 但简单选择排序的性能要略优于冒泡排序void selectSort(int *arr, int n) { for (int i = 0; i < n; i++)原创 2016-07-29 20:48:56 · 372 阅读 · 0 评论 -
C++复习之堆排序&快速排序
堆是具有下列性质的完全二叉树 : 每个节点的值都大于或等于其左右孩子节点的值 , 称为大顶堆;或者每个节点的值都小于或等于其左右孩子节点的值 , 称为小顶堆 .堆排序就是利用堆进行排序的方法 . 基本思想是 : 将待排序的序列构造成一个大顶堆 . 此时 , 整个序列的最大值就是堆顶的根结点 . 将它移走 ( 其实就是将其与堆数组的末尾元素交换 , 此时末尾元素就是最大值 ), 然后将剩余的 n-1原创 2016-07-30 10:45:28 · 371 阅读 · 0 评论 -
第二部分、十个海量数据处理方法大总结
第二部分、十个海量数据处理方法大总结 ok,看了上面这么多的面试题,是否有点头晕。是的,需要一个总结。接下来,本文将简单总结下一些处理海量数据问题的常见方法,而日后,本BLOG内会具体阐述这些方法。 下面的方法全部来自http://hi.baidu.com/yanxionglu/blog/博客,对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,转载 2016-07-30 15:17:18 · 999 阅读 · 0 评论 -
[LeetCode]Minimum Depth of Binary Tree
题目描述Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. 二叉树的遍历。递归遍历左右子树,返回最短的路径长度。递归结束的条件是,如原创 2016-08-12 21:03:31 · 250 阅读 · 0 评论 -
[LeetCode] evaluate-reverse-polish-notation
evaluate-reverse-polish-notation题目描述Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are+,-,*,/. Each operand may be an integer or another expression. Some e原创 2016-08-12 21:16:02 · 276 阅读 · 0 评论 -
[LeetCode] sort-list
sort-list 题目描述Sort a linked list in O(n log n) time using constant space complexity. 链表排序。。要求用O(n log n)的复杂度。好像只有归并排序比较适合 把链表分成两部分的时候用快慢指针:当快指针遍历结束后,慢指针刚到中间。 /** * Definition for singly-linked原创 2016-08-12 21:48:47 · 342 阅读 · 0 评论