算法是程序的靈魂,為什么有些程序可以在海量數(shù)據(jù)計(jì)算時,依然保持高速計(jì)算,大家可能會說: 程序使用了內(nèi)存計(jì)算框架(比如Spark)和緩存技術(shù)(比如Redis等),那再深入的思考一下,這些計(jì)算框架和緩存技術(shù)又是怎樣被技術(shù)高手設(shè)計(jì)出來的呢? 拿實(shí)際工作經(jīng)歷來說, 在Unix下開發(fā)服務(wù)器程序,功能是要支持上千萬人同時在線, 在上線前,做內(nèi)測,一切OK,可上線后,服務(wù)器就支撐不住了, 公司的CTO對代碼進(jìn)行優(yōu)化,再次上線,堅(jiān)如磐石。那一瞬間,你就能感受到程序是有靈魂的,就是算法。如果你不想永遠(yuǎn)都是代碼工人,那就花時間來研究下數(shù)據(jù)結(jié)構(gòu)和算法吧.
本課程是使用Scala語言來講解數(shù)據(jù)結(jié)構(gòu)和算法,內(nèi)容包括: 稀疏數(shù)組、單向隊(duì)列、環(huán)形隊(duì)列、單向鏈表、雙向鏈表、環(huán)形鏈表、約瑟夫問題、棧、表達(dá)式的轉(zhuǎn)換與求值、遞歸與回溯、迷宮問題、冒泡排序、選擇排序、插入排序、快速排序、歸并排序、排序速度分析、二分查找、散列、哈希表、二叉樹、二叉樹與數(shù)組轉(zhuǎn)換、二叉排序樹(BST)、其它二叉樹介紹(AVL 線索二叉樹 赫夫曼樹)。通過學(xué)習(xí),學(xué)員能掌握主流數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)機(jī)制,開闊編程思路,提高優(yōu)化程序的能力。