課前導入:
如何在書架上擺放圖書, 擺放圖書有兩個相關操作。
操作1:新書如何插入書架; 操作2:如何找到需要的書 。
方法1:隨便放(一本本挨著放)
操作1 直接放在最後面
操作2 一本本的找
方法2:按照書名的首字母排序
操作1 根據新書的首字母 二分查詢該插入的位置 移出空位
操作2 使用二分查詢
方法3:將書分類 例如 文學類 計算機類 藝術類等
每一類中的書按照書名首字母排序
操作1 分類 確定首字母 二分查詢應插入的位置 移出空位
操作2 分類 二分查詢
具體的操作只影響相應的類,其他的類不受影響
小問題:
1.實際中每一類書的藏書量不一樣,如何分配空間
給每一類同樣的書架 書架多了浪費空間 少了需要再新增書架
2.類別要分多細比較好
分的粗,同一類的書會很多;分的細,類別太多。
結論:解決問題方法的效率,跟資料的組織方式有關
組織方式 隨便放 按照書名的首字母排序 將書分類, 每一類中的書按照書名首字母排序
插入效率 高 慢 慢
查詢效率 慢 高 高
資料結構與演算法基本概念
一 基本資料結構 基本資料結構的定義 特性 運算 演算法。基本資料結構的分類 邏輯結構 1 線性結構 線性表 棧 佇列 雙佇列 陣列 廣義表 串 2 非線性結構 樹 二叉樹 圖 網 儲存結構 1 順序儲存 向量 一維陣列 2 鏈式儲存 鍊錶 二 演算法 查詢 順序 折半 分塊 雜湊 二叉排序樹 排序...
資料結構 演算法基本概念
1 有窮性 2 確定性 3 可行性 4 輸入 5 輸出 1 時間複雜度 它定性描述演算法的執行時間。乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。乙個演算法中的語句執行次數稱為語句頻度或時間頻度,記為t n 時間複雜度又分為 最壞時間複雜度,平均時...
資料結構與演算法 排序 基本概念
排序 將線性表中的元素按照公升序或者降序進行有序排列的操作。排序方法的穩定性 關鍵字相同的兩個元素 記錄 排序後的順序如果和排序前的相同,則稱該排序方法是穩定的,否則則稱該排序方法是不穩定的。內排序 在排序過程中,待排序的所有元素 記錄 全部都放置在記憶體中。外排序 在待排序的元素 記錄 太多的情況...