01 2018 档案
Quick Sort
摘要:快排在大规模元素(》100)被证明几乎是效率最高的排序方法, 也是一种分而治之算法的一个典型应用。 快排的思想是: 1)每次选定一个元素作为pivot, 利用pivot对数组进行分区(partition) 2) 大的放在pivot的后面,小的放在pivot前面 3)递归的对新生成的两个分区进行快排
阅读全文
Merge Sort
摘要:Merge Sort 的递归实现, 同时也是算法里面常见的分而治之方法。 先放上一段分而治之的算法定义, 一张图胜过千言万语。 下面是实现代码:
阅读全文
中缀表达式和后缀表达式学习心得
摘要:中缀表达式(Infix expression)即符合a op b的格式, 后缀表达式(Post Fix expression)即符合a b op 的格式。为什么要有后缀表达式?原因在于后缀表达式可以很容易的被计算机理解。 举个例子,a*(b+c)/d, 转化为后缀表达式是abc+*d/, 计算机会用
阅读全文
Post Order traverse binary tree using non-recursive way
摘要:Process analysis The solution above uses one stack. If you use two stacks, there are the following two ways. Solution 1 - do pre-order non-recursive f
阅读全文
Binary Search Tree Learning Summary
摘要:BST Definition BST is short for Binary Search Tree, by definition, the value of right node is always greater or equal to the root node, the value of l
阅读全文
反转链表的递归与非递归实现
摘要:反转链表也是面试时常问到的题目,题目听上去很简单,想要快速正确的写出来,也确实需要很扎实的基本功。 这类简单的题目既有非递归的实现方法,也有递归的实现方法。 非递归实现 非递归实现,模拟的是基本的手动操作, 访问链表中的每一个节点,但是同时要记住当前被访问节点的上一个和下一个节点。这三个指针构成了一
阅读全文
循环双向链表
摘要:第一次用C#描述链表,和大学时用C++ 描述链表的感觉很一致,用visual studio很快就可以实现单向链表,双向链表, 和循环链表。 The reference type of C# is a key, and play the same role as pointer in C++. 上一段
阅读全文
Spell checker using hash table
摘要:Problem description Given a text file, show the spell errors from it. (https://www.andrew.cmu.edu/course/15-200/s06/applications/labs/lab3/) Psuedo Co
阅读全文