演算法和資料操作

2021-07-11 23:02:46 字數 862 閱讀 8757

掌握常用的二分查詢、快速排序、歸併排序。

查詢:順序查詢、二分查詢、雜湊表查詢、二叉排序樹查詢。

位運算可以看成是一類特殊的演算法,它是把數字表示成二進位制之後對0和1的操作,共有與、或、異或、左移和右移5種運算。

雜湊表最主要的優點是能夠在o(1)時間來查詢某一元素,是效率最高的查詢方式。缺點是需要額外的空間來實現雜湊表。

排序:冒泡排序、插入排序、選擇排序、快速排序、歸併排序,從額外空間的消耗平均時間複雜度最差時間複雜度來比較它們的優缺點。

如果要求在排序的陣列(或者部分排序的陣列)中查詢乙個數字或者統計某個數字出現的次數,可以嘗試使用二分查詢演算法。

快速排序總體的平均效率是最好的。

考慮排序的應用環境、約束條件。

希爾排序相當於直接插入排序的公升級,它們同屬於插入排序類,堆排序相當於簡單選擇排序的公升級,它們同屬於選擇排序類。而快速排序其實就是我們前面認為最慢的氣泡排序的公升級,它們都屬於交換排序類。即它也是通過不斷的比較和移動交換來實現排序的,只不過它的實現,增大了記錄的比較和移動的距離,將關鍵字較大的記錄從前面直接移動到後面,關鍵字較小的記錄從後面直接移動到前面,從而減少了總的比較次數和移動交換次數。《大話資料結構》

待續

資料結構 演算法和資料操作

演算法和資料操作 重要的演算法 二分查詢 歸併排序和快速排序。查詢一般分為順序查詢 二分查詢 雜湊表查詢和二叉排序樹查詢。排序包括 選擇排序 插入排序 交換排序 歸併排序以及外排序等。快速排序 實現快速排序演算法的關鍵在於先在陣列中選擇乙個數字,接下來把陣列中的數字分為兩部分,比選擇的數字小的數字移...

演算法和資料操作 動態規劃

題目要求 給定乙個數字,按照如下規則翻譯成字串 0翻譯成 a 1翻譯成 b 25翻譯成 z 乙個數字有多種翻譯可能,例如12258一共有5種,分別是bccfi,bwfi,bczi,mcfi,mzi。實現乙個函式,用來計算乙個數字有多少種不同的翻譯方法。解題思路 下面我們從自上而下和自下而上兩種角度分...

演算法和資料操作 回溯法

從解決問題的每一步的所有可能選項裡系統的選擇出乙個可行解決方案。回溯法非常適合有多個步驟組成的問題,每個步驟有多個選項,當我們在某一部選擇了其中的額乙個選項,就進入下一步,然後又面臨新的選項。重複選擇到達最終狀態 用回溯法解決的問題的所有選項可以形象的用樹狀結構表示。在某一步有n個可能的選項,那麼該...