資料結構常用演算法學習一

2021-09-28 11:40:43 字數 840 閱讀 1334

近來開始學習資料結構和演算法,為工作第一步做準備,先把這兩天看的排序按照自己理解來寫一下。

(都是從小到大排序)

從陣列第乙個元素x開始,與接下來的每乙個元素進行比較,比x小的元素則與x交換位置,比x大則位置不變,直到比較完畢,則開始比較陣列第二個元素。氣泡排序是一種穩定的排序演算法

時間複雜度:

最好情況:陣列開始時便是正序排列:o(n)

最壞:o(n^2)

平均:o(n^2)

依次從陣列中,按從小到大的順序選取元素,最小的與陣列第乙個元素進行交換,然後第二小的和第二個元素進行交換,以此類推,選擇排序是一種不穩定的排序演算法

時間複雜度:

最好情況:o(n^2)

最壞:o(n^2)

平均:o(n^2)

將陣列元素插入到另乙個已排序好的陣列當中,在這裡可以將陣列第乙個元素(如a[0])設計為乙個哨兵值,每次需要插入的新元素賦值給哨兵值,這樣每次就只需要將哨兵值進行比較即可,不用額外開闢陣列空間,只需要乙個哨兵值的附加空間即可。直接插入排序是一種穩定的排序演算法

最好情況:o(n)

最壞:o(n^2)

平均:o(n^2)

思想就是取出乙個數,然後將比這個數小的放這個數前面,比這個數大的放後面,然後再對前半部分和後半部分分別再用此方法,直到排序成功。快速排序是一種不穩定的演算法

最好情況:o(nlogn)

最壞:o(n^2)

平均:o(nlogn)

將待排序元素插入乙個已排序好的陣列,從中間位置開始比較,然後繼續採用二分法進行排序插入。二分法插入排序是一種穩定排序演算法。

最好情況:o(log₂n)

最壞:o(n^2)

平均:o(n^2)

資料結構及演算法學習(一)

資料結構是一門與程式設計密切相關的課程,而程式設計就是演算法 資料結構,演算法即是處理資料的策略,而資料結構就是表達程式設計的模型,可以說任何乙個程式設計問題,我們都可以從演算法和模型出發。概而言之,資料結構就是描述了程式設計的數學模型及在其程式設計上的表示和實現。2 資料結構 是乙個帶有結構的資料...

演算法學習 資料結構2

1 資料結構概述 數結構是計算機中對資料的一種儲存和組織方式,同是也泛指相互之間存在一種或多種特定關係的資料的集合。2 資料結構中的基本概念 資料 data 資料是資訊的載體,其能夠被計算機識別 儲存和加工處理,是電腦程式加強的 原材料 資料元素 data element 資料元素是資料的基本單位,...

資料結構與演算法學習

我想重新學習一下資料結構與演算法,打好基礎。to measure is to know.我們用演算法複雜度t n 來表示演算法的效率,效能。t n 的取值 所有問題規模為n的問題例項中,將他們的計算成本進行總體的比較,取出最壞情況下的值。有幾點需要catch,1.演算法執行的時間,會根據程式語言,作...