資料結構與演算法學習背景概述

2021-08-30 02:46:09 字數 1161 閱讀 2840

1. 面試必備

站在乙個比較現實且功利的角度來看,做計算機技術的大公司,如bat、google、facebook,它們在招聘技術人員時,資料結構與演算法是必考查的知識點。如果想要進入這樣的大公司,那麼掌握資料結構與演算法就是必不可少的。

這點作為正在秋招時期的我深有感觸。完全不問資料結構與演算法的技術面試是非常少的,基本上每個公司在技術面都會考查資料結構與演算法(就算是小公司)。

2. 技術路線成長必備

如果自己想在技術路線上有所成長,那麼資料結構與演算法就是必備的。因為資料結構與演算法會幫助自己的開發過程中考慮的更成熟。雖然作為學生的我目前還沒有體會到資料結構與演算法在實際專案中的功效。不過,就我目前的知識來看,如果想要自己的**要很好的儲存與計算效能,那麼是不是就一定要考慮資料的儲存方式與資料的操作方式?這就是資料結構與演算法了,想要自己考慮的更周全更深入,那麼一定要考慮到資料的儲存與操作。學習資料結構與演算法其實就是學習前人大牛們總結出來的經驗。如果掌握了這些,我們就是站在巨人的肩膀上看問題了,當然會事半功倍了。

我認為學習資料結構與演算法的原動力應該是為了自己的技術成長,而面試通關利器只能作為結果而非動力。

廣義上:資料結構是儲存資料的方法,演算法是運算元據的方法。舉個例子,在圖書館中,資料就是一本本書。圖書館的資料結構就是書存放在圖書館的方式,比如它可以隨機放,也可以分門別類的存放。圖書館的查詢演算法就是我們查詢一本書的方式,我們可以乙個接著乙個的去試探性的查詢,也可以按類定位查詢。

狹義上:資料結構指的是隊、棧、堆、陣列等,演算法指的是動態規劃、二分查詢等。這些資料結構與演算法都是計算機領域的前輩們總結出來的經驗,我們掌握了這些,在自己實際工作中就可以借鑑使用。或者掌握這些資料結構與演算法的思想也能夠幫助自身更好的思考問題。

核心重點:複雜度分析

資料結構:陣列、鍊錶、棧、佇列、雜湊表、二叉樹、堆、跳表、圖、trie樹

演算法:遞迴、排序、二分查詢、搜尋、雜湊演算法、貪心演算法、分治演算法、回溯演算法、動態規劃、字串匹配演算法。

(圖來自王爭《資料結構與演算法之美》課程)

資料結構與演算法學習

我想重新學習一下資料結構與演算法,打好基礎。to measure is to know.我們用演算法複雜度t n 來表示演算法的效率,效能。t n 的取值 所有問題規模為n的問題例項中,將他們的計算成本進行總體的比較,取出最壞情況下的值。有幾點需要catch,1.演算法執行的時間,會根據程式語言,作...

資料結構與演算法學習筆記

演算法基礎篇 第一章 演算法概述 首先了解一下基本的概念 1.1 什麼是演算法呢?從字面意義上理解,演算法就是用於計算的方法,用這種方法達到預期的結果。通俗的講,演算法可以理解為乙個完整的解題步驟,由一些基本的運算和規定的運算順序組成。通過這樣的解題步驟可以解決特定的問題。演算法可以抽象出5個特徵 ...

資料結構與演算法學習二

1 用js中object物件模擬集合set的資料結構 set集合中的資料結構 s s 即集合中的鍵 值相同。故,可令object物件中的鍵 值相同,來模擬set集合及其中的方法,如下 用js中object模擬實現集合set資料結構 es6中有set類,避免混淆這裡用set2 var set2 fun...