資料結構學什嗎?

來源:互聯網
上載者:User

標籤:

0X00資料結構1.定義

資料結構是一門討論“描述現實世界實體的資料模型(通常為非數值計算)及其之上的運算在電腦中如何表示和實現”的學科。

2.幾個概念
  • 資料:描述客觀事物的數和字元的集合;
  • 資料元素:即一條記錄,是資料的基本單位;
  • 資料項目:即欄位或域,具有獨立含義的最小資料單位;
  • 資料對象:性質相同的資料元素的集合,資料的子集;
  • 資料結構:所有資料元素以及資料元素之間的關係。

我的理解:

3.研究範圍
  • 資料的邏輯結構:資料元素間的邏輯關係 
    • 集合
    • 線性結構
    • 樹形結構
    • 圖形結構
  • 資料的儲存結構:資料元素及其關係在電腦中的儲存方式 
    • 順序儲存結構
    • 鏈式儲存結構
    • 索引儲存結構
    • 散列(雜湊)儲存結構
  • 資料的運算
4.描述:二元組

B=(D,R) 
其中,B是一種資料結構,由資料元素的集合D和D上的二元關係的集合R組成。

0X01演算法1.演算法是什嗎?

演算法是在具體的儲存結構上實現某個抽象運算,由控制結構(順序、分支和迴圈)和原操作(對固有資料類型的操作,視為演算法基本運算)構成。

演算法的5個特性:

  1. 有窮性
  2. 確定性
  3. 可行性
  4. 有輸入
  5. 有輸出
2.演算法的描述
  1. 語言方式
  2. 圖形方式
  3. 表格方式
3.演算法分析
  1. 演算法設計的目標

    • 正確性
    • 可使用性
    • 可讀性
    • 健壯性
    • 高效率與低儲存量需求
  2. 演算法的效率分析

    • 事後統計法
    • 事前分析估演算法

時間複雜度:一個語句的頻度是指該語句在演算法中被重複執行的次數。演算法中所有語句的頻度之和記作T(n),它是該演算法問題規模n的函數,時間複雜度主要分析T(n)的數量級。演算法中的基本運算(最深層迴圈內的語句)的頻度與T(n)同數量級,所以通常釆用演算法中基本運算的頻度 f(n)來分析演算法的時間複雜度。因此,演算法的時間複雜度也記為: 
T(n)=O(f(n))

  1. 演算法儲存空間分析

空間複雜度:對一個演算法在運行過程中(輔助變數)臨時佔用的儲存空間大小的量度,一般作為問題規模n的函數——S(n)=O(g(n))。

0X02資料結構學什嗎?
  1. 邏輯結構 
    • 線性結構(線性表、棧、隊列、串、數組、廣義表)
    • 樹形結構(樹、二叉樹)
    • 圖形結構(圖)
  2. 演算法(遞迴、尋找、內排序、外排序)
  3. 儲存結構(檔案)
0X03如何學習資料結構?
    • 多思考
    • 多上機

資料結構學什嗎?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.