This topic created in 4659 days ago, the information mentioned may be changed or developed.
非CS专业自修python的人表示不懂……
需要具备什么样的知识才能够符合‘熟悉常用数据结构和算法’的要求?
虽然也看过数据结构的书,但基本上都是用C写的。按照我的理解Python又不直接操作内存,只需要用Python内置的那几个数据结构拼拼凑凑就能满足我的使用要求了。
说道算法,就更不懂了。到底什么才算“常用算法”
还请各位大神指点一下。
8 replies • 2014-06-16 04:38:46 +08:00
 |
|
1
Mutoo Sep 18, 2013 1
你需要这个《Data Structures and Algorithms Using Python》
|
 |
|
2
nybux Sep 18, 2013 1
我觉得常用的就是java,c++,c#这种库都提供的数据结构和算法 比如 数组,链表,平衡树,哈系表 查找,排序,想不出了
|
 |
|
3
Ricepig Sep 18, 2013
python不直接操作内存,但是并不妨碍python可以实现这些数据结构
数据结构包括但不限于:数组、链表、队列、各种树、图、各种键值集合(哈希表、Map)。
常用算法包括但不限于:查找、排序、树的各种BFS/DFS、图的各种遍历、最短路径、简单的数值计算和线性代数、简单的DP、贪婪等等。
到底有哪些,看看算法导论的目录就明白了。
|
 |
|
5
txx Sep 18, 2013 via iPhone
我一般都会 揉在机试里面。考个排序啊 哈西啊。像平衡树这种东西。裸写不查文档v2ex 也没有多少人写得出来吧
|
 |
|
6
master Sep 18, 2013
算法和数据结构重要的是在于思想,并不局限于语言吧, 重要的还是先要理解,理解了之后自然能用自己习惯的语言来实现,差别只是麻烦与否的问题
|
 |
|
7
chrishine Sep 19, 2013
能否用学到的算法思想用到新问题上面,或者用到实际问题上面. 拿大名鼎鼎的二分来说吧. 1,bug free,取中值用到加法有问题.Java是提供了无符号移位运算符,C/C++是用low + (high - low)/2,都表明算术运算对那些发现范围不够却不会自动扩展范围的语言是不安全的.在这种不安全的语言当中,写一个程序计算一天有多少毫秒,你会用int还是long?计算一年有多少毫秒呢?(π秒是一个纳世纪) 2,二分查找是要有序的先决条件的.给两个日期,计算之间有多少工作日,你如何通过预处理让算法看起来美妙.
|