數(shù)據(jù)結(jié)構(gòu)和算法的作用

定義

  • 數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)是對(duì)計(jì)算機(jī)內(nèi)存,有時(shí)候是磁盤中-數(shù)據(jù)一種安排
  • 數(shù)據(jù)結(jié)構(gòu)的種類
    • 數(shù)組、鏈表、棧、二叉樹、哈希表 etc
  • 算法:算法是對(duì)這些數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)進(jìn)行各種各樣的處理,如CRUD
  • 數(shù)據(jù)結(jié)構(gòu)由某個(gè)類進(jìn)行封裝,更泛化的講,任何一個(gè)類都可稱為數(shù)據(jù)結(jié)構(gòu),因?yàn)槠渲邪藬?shù)據(jù)的安排

掌握這些知識(shí)的好處

  • 解決如何用計(jì)算機(jī)存儲(chǔ)現(xiàn)實(shí)世界的數(shù)據(jù)
    • 如,如何用計(jì)算機(jī)表示一個(gè) 倉(cāng)庫(kù)貨物清單,訂單記錄
    • 簡(jiǎn)單來(lái)講,可以用 List 存放 這些清單,List也是一種數(shù)據(jù)結(jié)構(gòu)
    • 進(jìn)而提煉出在此 數(shù)據(jù)結(jié)構(gòu)中查找你想要信息即算法的問題
  • 這些結(jié)構(gòu)可以作為程序員日常工作的輔助工具
  • 建模,提供對(duì)復(fù)雜問題的抽象建模
    • 最重要的數(shù)據(jù)結(jié)構(gòu)是

數(shù)據(jù)結(jié)構(gòu)概述

注意:

查找:即針對(duì)特定元素進(jìn)行搜索的過(guò)程
刪除 有幾種操作:
  • 本身的刪除操作,如鏈表前后指針的操作 VS 數(shù)組后面所有元素向前移動(dòng)
  • 刪除特定位置對(duì)象的區(qū)別,如隊(duì)頭、棧頂?shù)鹊龋瑢?duì)其他數(shù)據(jù)操作則不同
  • 對(duì)指定元素的刪除,這樣就加入了 查找的復(fù)雜度
數(shù)據(jù)結(jié)構(gòu) 優(yōu)點(diǎn) 缺點(diǎn)
數(shù)組 插入塊,如果知道下標(biāo),存入/取出很快 查找/刪除慢,因?yàn)椴檎乙灰粚?duì)比,刪除要移動(dòng)后續(xù)所有元素大小固定
有序數(shù)組 比無(wú)序數(shù)組查找快,可以用二分查找 插入比無(wú)序數(shù)組慢,刪除比無(wú)序略快,可以用二分先找,但也要一一對(duì)比,大小固定
提供后進(jìn)先出方式的存取,對(duì)棧頂元素 取/刪 很快 存取 除棧頂外的元素 慢
隊(duì)列 提供先進(jìn)先出方式的存取 存取除隊(duì)頭隊(duì)尾元素外慢
鏈表 插入快、刪除快 查找慢,一一對(duì)比
二叉樹 查找、插入、刪除都快 刪除算法復(fù)雜
紅黑樹 查找、插入、刪除都快 算法復(fù)雜
哈希表 如果關(guān)鍵字已知 則存、取極快,插入快 刪除慢,若不知關(guān)鍵字則存取慢,空間利用不均勻
插入、刪除快,對(duì)最值存取快 其他數(shù)據(jù)項(xiàng) 存取慢
對(duì)現(xiàn)實(shí)世界的建模 算法復(fù)雜慢

算法

  • insert
  • select 某特定數(shù)據(jù)項(xiàng)
  • remove 某特定數(shù)據(jù)項(xiàng)
  • 遍歷
  • 排序
  • 遞歸-

面向?qū)ο骎S面向過(guò)程

  • 即 行為與數(shù)據(jù)地位的問題
    • 數(shù)據(jù)與行為并列同等重要;
    • 還是 數(shù)據(jù)作為輔助單獨(dú)存在方法里
  • 面向過(guò)程:未重視數(shù)據(jù),局部變量還可以,但全局變量,所有方法共同使用的數(shù)據(jù)就無(wú)能為力了

面向?qū)ο?/h4>
  • 對(duì)象
    • 關(guān)鍵思想:對(duì)象是方法和數(shù)據(jù)的共同存在
    • 與現(xiàn)實(shí)世界對(duì)象更好的映射
    • 全局變量 public、私有變量 private 的處理
    • 針對(duì)單一對(duì)象定義數(shù)據(jù)/行為,還是抽象提升一個(gè)層次
    • 除了單一的對(duì)象,有可能需要若干個(gè)對(duì)象同時(shí)處理
    • 類是針對(duì)一個(gè)或多個(gè)對(duì)象的說(shuō)明、藍(lán)圖
    • 由類可以得到任意個(gè)具有相同數(shù)據(jù)、行為的對(duì)象

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容