Top 50 you must be to know about knowledge of algorithm.
- Implement an array that can extend capacity automatically
- Implement an ordered array include function of adding,removing and updating
- Combine two ordered arrays into one ordered array
- Implement a linked list,a circle linked list and two-way linked list all including adding and deleting function
- Reverse linked list
- Combine two ordered linked list into one
- Query a middle of node in linked list
- Swap node in Pairs
- Linked list cycle checked
- Implementing a stack by array
- Implementing a stack by linked list
- Simulating a browser with function of forward and back by stack
- Implementing a queue by array
- Implementing a queue by linked list
- Implementing a circular queue
- Evaluation by Fibonacci
- Factorial implementation
- To permute all on an array
- Implementing a Bubble Sort Algorithm
- Implementing a Selection Sort Algorithm
- Implementing an insertion sort algorithm
- Implementing a quick sort algorithm
- Implementing a merge sort algorithm
- Finding out Kth element with an array in O(n)
- Implementing a sorting by heap
- Implementing a radix sort algorithm
- Implementing a binary search algorithm
- Implementing a vague binary search algorithm(the first element greater than or equal target value)
- Implementing a hash table that solving conflict base on linked list
- To recurse the binary tree
- to match String by BF(Bruce Force) Algorithm
- To match Strings using BM Algorithm
- To insert and find the strings by algorithm of trie tree
- To solve the problem of 0 or 1 bag by recalling method
- To solve the problem of 0 or 1 bag by dynamic planing method with two dimensional array
- To solve the problem of 0 or 1 bag by dynamic planing method with a dimensional array
- To solve the problem of the shortest path from a[0][0] to a[i][j] by state diagram method
- To implement a topological sort by Kahn
- Bitmap structure
- To implement a hanoi algorithm
- 实现一个支持动态扩容的数组
- 实现一个大小固定的有序数组,支持动态增删改操作
- 实现两个有序数组合并成一个有序数组
- 实现单链表,循环链表,双向链表,支持增删操作
- 单链表反转
- 实现两个有序的链表合并为一个有序链表
- 实现求链表的中间节点
- 实现结点的两两交换
- 链表环检测
- 用数组实现一个顺序栈
- 用链表实现一个链式栈
- 编程模拟实现一个浏览器的前进、后退功能
- 用数组实现一个顺序队列
- 用链表实现一个链式队列
- 实现一个循环队列
- 编程实现斐波那契数列求值
- 编程实现求阶乘 n!
- 编程实现一组数据集合的全排列
- 实现归并排序,快速排序,插入排序,冒泡排序,选择排序,基数排序
- 编程实现 O(n) 时间复杂度内找到一组数据的第 K 大元素
- 堆排序实现
- 实现一个有序数组的二分查找算法
- 实现模糊二分查找算法(比如大于等于给定值的第一个元素)
- 实现一个基于链表法解决冲突问题的散列表
- 二叉树的遍历
- 使用 BF(暴力破解)算法来实现字符串匹配功能
- 使用 BM 算法来实现字符串匹配功能
- 使用 Trie 树实现字符串的插入和查找
- 使用回溯算法解决 0 或 1 背包问题
- 使用二维数组方式实现动态规划来解决 0 或 1 背包问题
- 使用一维数组方式实现动态规划来解决 0 或 1 背包问题
- 使用状态转移表法解决从 a[0][0] 到 a[i][j] 的最短路径问题
- 使用 Kahn 算法实现拓扑排序
- 位图数据结构
- 实现一个汉诺塔