Skip to content

showarm/Algorithms-Data_Structure

Repository files navigation

Algorithms-Data_Structure

Data Structure + Algorithms

https://github.com/jwasham/google-interview-university/blob/master/README-cn.md 一直以来,我所用的任何数据结构都是内建于编程语言当中。至于它们在背后是如何运作,对此我一概不清楚。

数据结构 in java 1 List : 存储方式:线性表/链表 java中集合的算法:对List的排序/查找,二分/最值/反转/随机洗牌/交换 都在java.util.Collections里,read the fucking SC. https://www.tutorialspoint.com/java/java_collection_algorithms.htm 2 Stack/Queue:特殊的List 利用LinkedList可以轻松实现二者。

3 哈希表(Hash table) : 散列 /key value

4 树(Trees),主要是二叉树 : 两种遍历算法,其中depth-first search又有三种,中序左根右 几种特殊的树: 完全二叉树 二叉查找树(Binary search trees):BSTs 字典树(Tries)https://www.toptal.com/java/the-trie-a-neglected-data-structure AVL 树 B 树 红黑树 K 叉树

5 堆(Heap) / 优先级队列(Priority Queue) / 二叉堆(Binary Heap) 可视化是一棵树,但通常是以线性的形式存储(数组、链表)

6 图(Graphs):存储方式:对象和指针/矩阵(尼玛,线代)/邻接表 各种大名鼎鼎的经典算法,经典问题: 深度广度搜索 最小生成树,贪心算法 拓扑排序 Kruskal 算法 最短路径 Dijkstra 算法 A* 算法 Bellman-Ford 算法 Prim 算法 强连通分量 Kosaraju 算法

7 树堆 (Treap) 什么鬼

8 跳表 "有一种非常迷幻的数据类型" - Skiena

算法:对数据结构里的元素的操作:增删查... insert/delete/find/swap/reverse(这些操作自身基于结构存储方式的不同而不同) 每一项操作又有多种套路啦, just tricks。

算法,第一套路就是排序 字符串搜索和操作 缓存(Cache)LRU 密码 压缩 图形处理

算法设计:方式问题:套路中的套路 递归(Recursion) 动态规划(Dynamic Programming) https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/ NP, NP-完全和近似算法 线性规划(Linear Programming)

位运算/2的次幂 https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf

傅里叶变换--哈哈,已疯 概率论 离散数学 线代。。。。 微积分。。。

About

Data Structure & Algorithms

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors