三個簡單的排序

2021-08-29 15:43:36 字數 607 閱讀 4409

氣泡排序:

從第乙個元素開始,和它右邊的哪個元素比較,如果它比右邊的哪個元素大的話,就交換位置,經過第一次後,最右邊的那個元素,就是最大的哪個元素.

第二次同樣,從第一元素開始,但是比較到倒數第二個元素,這樣右邊第二個元素就是第二高的元素.

依次這樣下去,每次比較的結束值就是,比上一次小乙個,直到結束的標識值為2.

選擇排序:

和氣泡排序的方法差不多.

首先從第乙個元素開始掃瞄整個資料裡面最小的乙個,如果最小的不是第乙個,那麼把最小的值的第一元素互換.

接著從第二個元素開始掃瞄剩餘的元素中最小的乙個,如果最小的不是第二個元素,側把剩餘元素中最小的哪個與第二元素互換.

依次第三,第四,直到最後乙個元素.

插入排序:

出入排序,首先從第二個元素開始,並把它最為標記,然後和第一元素比較,如果比第一元素大,則位置不邊,如果比第一元素小,則插到第乙個元素的前面.

然後第二次,把第三個元素作為標記量,把標記量和前面的兩個元素比較,從前邊的兩個元素依次比較和標記量的數值,如果數值大於標記量,側把從這個位置開始,向後移,把標記量插入,如果沒有比標記量大的就不動.

依次第三,第四,直到最後乙個元素.每次都和這個元素之前的元素進行比較.

O n 的三個排序演算法

今天覆習下最簡單的三個排序演算法,乙個是選擇排序,乙個是插入排序,乙個是氣泡排序,三者時間複雜度都是o n 通過分析來發現三者的優劣,以及對最好的情況和最壞的情況進行分析。另外,這三中排序演算法都是基於比較的排序演算法。基於比較的排序演算法的執行過程,會涉及兩種操作,一種是元素比較大小,另一種是元素...

棧的三個簡單應用

根據真題需求,主要再回顧一下棧在括號匹配 表示式求值和共享棧的運用。問題描述 演算法思想 若是左括號,入棧 若是右括號,出棧乙個左括號判 斷是否與之匹配 檢驗到字串尾時,還要檢查棧是否為空,只有棧空,整個字串才是括號匹配的。演算法實現 bool check char str sharestack 棧...

scala的三個排序方法

def sorted b a implicit ord ordering b reprscala val a list 10,5,8,1,7 sorted a list int list 1,5,7,8,10 scala val b list banana pear orange sorted b ...