前端算法與數據結構自學總結(理論篇)

2017年5月21日張家口天漠音樂節(jié)趙雷
一瑰煎、從那幾個方面考量一個算法铺然?
  • 1、時間復雜度
  • 2酒甸、空間復雜度
  • 3魄健、正確性
  • 4、可讀性
  • 5插勤、健壯性
二沽瘦、算法有哪些特性?
  • 1农尖、有窮性析恋,算法必須在有限的步驟之后完成
  • 2、確切性盛卡,每一步必須有確切意義
  • 3助隧、具有0個或多個輸入項
  • 4、具有1個或多個輸出
  • 5滑沧、具有可行性(或有效性)
三并村、簡述堆、棧和隊列的區(qū)別:

(比喻:棧:吃多了吐滓技;隊列:吃多了拉??)
堆(Heap)是在程序運行時哩牍,而不是在程序編譯時,申請某個大小的內存空間令漂。即動態(tài)分配內存膝昆,對其訪問和對一般內存的訪問沒有區(qū)別。通常是一個可以被看做一棵樹的數組對象洗显,也總是一棵完全二叉樹外潜。

棧(Stack)(又叫堆棧),就是一個桶挠唆,后放進去的先拿出來处窥,它下面本來有的東西要等它出來之后才能出來。(后進先出)

隊列(Queue)只能在隊頭做刪除操作,在隊尾做插入操作.而棧只能在棧頂做插入和刪除操作玄组。(先進先出)

四滔驾、線性表的基本操作有哪些?

初始化(創(chuàng)建)俄讹,插入元素哆致,查找元素,刪除元素患膛,修改指定位置的元素摊阀,得到指定位置的元素,請空表等。

五胞此、二叉樹中的先序遍歷臣咖、中序遍歷和后序遍歷的順序
二叉樹

(前序遍歷、中序遍歷和后續(xù)遍歷都屬于深度優(yōu)先的遍歷漱牵,都是相對于根節(jié)點而言的前夺蛇、中
后,都是一頭咋到底酣胀,先找到葉子節(jié)點再回溯)

    1. 前序遍歷:先遍歷根結點刁赦,然后遍歷左子樹,最后遍歷右子樹闻镶。
      A B D H E C F G
  • 2.中序遍歷:先遍歷左子樹甚脉,然后遍歷根結點,最后遍歷右子樹儒溉。
    H D B E A F C G

  • 3.后序遍歷:先遍歷左子樹宦焦,然后遍歷右子樹,最后遍歷根節(jié)點顿涣。
    H D E B F G C A

另外如果是層序遍歷波闹,從上到下按層次訪問樹
A B C D E F G H

六、散列表的特點和用途

散列表(也叫哈希表)涛碑,是一種查找算法精堕,與鏈表、樹等算法不同的是蒲障,散列表算法在查找時不需要進行一系列和關鍵字(關鍵字是數據元素中某個數據項的值歹篓,用以標識一個數據元素)的比較操作。

散列表算法希望能盡量做到不經過任何比較揉阎,通過一次存取就能得到所查找的數據元素庄撮,因而必須要再數據元素的存儲位置和它的關鍵字(可用的key)之間建立一個確定的對應關系,使每個關鍵字和散列表中一個唯一的存儲位置相對應毙籽。因此在查找時洞斯,只要根據這個對應關系找到給定關鍵字在散列表中的位置即可。這種對應關系被稱作散列函數(可用h(key)表示)坑赡。

根據設定的散列函數h(key)和處理沖突的方法將一組關鍵字key映射到一個有限的連續(xù)地址區(qū)間上烙如,并以關鍵字在地址區(qū)間中的像作為數據元素在表中的存儲位置,這種表便被稱為散列表毅否,這一映像過程稱為散列亚铁,所得存儲位置稱為散列地址

七螟加、冒泡排序和選擇排序的優(yōu)缺點

冒泡排序是穩(wěn)定排序(即每次結果都一樣)徘溢,選擇排序是非穩(wěn)定排序吞琐。

冒泡排序需要開辟新的內存空間以供交換操作,交換次數多然爆,效率低顽分。

選擇排序相對于冒泡排序交換次數少,效率較高施蜜。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市雌隅,隨后出現的幾起案子翻默,更是在濱河造成了極大的恐慌,老刑警劉巖恰起,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件修械,死亡現場離奇詭異,居然都是意外死亡检盼,警方通過查閱死者的電腦和手機肯污,發(fā)現死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吨枉,“玉大人蹦渣,你說我怎么就攤上這事∶餐ぃ” “怎么了柬唯?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長圃庭。 經常有香客問我锄奢,道長,這世上最難降的妖魔是什么剧腻? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任拘央,我火速辦了婚禮,結果婚禮上书在,老公的妹妹穿的比我還像新娘灰伟。我一直安慰自己,他們只是感情好蕊温,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布袱箱。 她就那樣靜靜地躺著,像睡著了一般义矛。 火紅的嫁衣襯著肌膚如雪发笔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天凉翻,我揣著相機與錄音了讨,去河邊找鬼。 笑死,一個胖子當著我的面吹牛前计,可吹牛的內容都是我干的胞谭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼男杈,長吁一口氣:“原來是場噩夢啊……” “哼丈屹!你這毒婦竟也來了?” 一聲冷哼從身側響起伶棒,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤旺垒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肤无,有當地人在樹林里發(fā)現了一具尸體先蒋,經...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年宛渐,在試婚紗的時候發(fā)現自己被綠了竞漾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡窥翩,死狀恐怖业岁,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情寇蚊,我是刑警寧澤叨襟,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站幔荒,受9級特大地震影響糊闽,放射性物質發(fā)生泄漏。R本人自食惡果不足惜爹梁,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一右犹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧姚垃,春花似錦念链、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至看成,卻和暖如春君编,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背川慌。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工吃嘿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留祠乃,地道東北人。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓兑燥,卻偏偏與公主長得像亮瓷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子降瞳,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內容

  • 1 序 2016年6月25日夜嘱支,帝都,天下著大雨挣饥,拖著行李箱和同學在校門口照了最后一張合照斗塘,搬離寢室打車去了提前租...
    RichardJieChen閱讀 5,096評論 0 12
  • 1、線性表亮靴、棧和隊列等數據結構所表達和處理的數據以線性結構為組織形式。棧是一種特殊的線性表于置,這種線性表只能在固定的...
    霧熏閱讀 2,397評論 0 10
  • 第一章 緒論 什么是數據結構茧吊? 數據結構的定義:數據結構是相互之間存在一種或多種特定關系的數據元素的集合。 第二章...
    SeanCheney閱讀 5,767評論 0 19
  • 9.3.3 快速排序 ??快速排序將原數組劃分為兩個子數組八毯,第一個子數組中元素小于等于某個邊界值搓侄,第二個子數組中的...
    RichardJieChen閱讀 1,843評論 0 3
  • 我這里不是想貶低和指責工作在第一線的人,只是我個人的所見所聞所感话速。 自己所親歷的兩件事 1讶踪、上家公司,每次去上廁所...
    冬天只愛早晨閱讀 459評論 0 1