最最最基礎的排序大演算法

2021-10-01 13:12:25 字數 1667 閱讀 3662

技術篇,話不多說,**走起。

時間複雜度統計:

1.氣泡排序

演算法規則:由於演算法每次都將乙個最大的元素往上冒,我們可以將待排序集合(0...n)看成兩部分,一部分為(k..n)的待排序unsorted集合,另一部分為(0...k)的已排序sorted集合,每一次都在unsorted集合從前往後遍歷,選出乙個數,如果這個數比其後面的數大,則進行交換。完成一輪之後,就肯定能將這一輪unsorted集合中最大的數移動到集合的最後,並且將這個數從unsorted中刪除,移入sorted中。

**截圖:

執行結果:

2.選擇排序

演算法規則:將待排序集合(0...n)看成兩部分,在起始狀態中,一部分為(k..n)的待排序unsorted集合,另一部分為(0...k)的已排序sorted集合,在待排序集合中挑選出最小元素並且記錄下標i,若該下標不等於k,那麼 unsorted[i] 與 sorted[k]交換 ,一直重複這個過程,直到unsorted集合中元素為空為止。

**截圖:

執行結果:

3.快速排序

演算法規則:快速排序使用分治法(divide and conquer)策略來把乙個序列(list)分為較小和較大的2個子序列,然後遞迴地排序兩個子串行。

步驟為:

挑選基準值:從數列中挑出乙個元素,稱為「基準」(pivot),

分割:重新排序數列,所有比基準值小的元素擺放在基準前面,所有比基準值大的元素擺在基準後面(與基準值相等的數可以到任何一邊)。在這個分割結束之後,對基準值的排序就已經完成,

遞迴排序子串行:遞迴地將小於基準值元素的子串行和大於基準值元素的子串行排序。

遞迴到最底部的判斷條件是數列的大小是零或一,此時該數列顯然已經有序。

**截圖:

執行結果:

4.插入排序

演算法規則:

一般來說,插入排序都採用in-place在陣列上實現。具體演算法描述如下:

1.從第乙個元素開始,該元素可以認為已經被排序

2.取出下乙個元素,在已經排序的元素序列中從後向前掃瞄

3.如果該元素(已排序)大於新元素,將該元素移到下一位置

4.重複步驟3,直到找到已排序的元素小於或者等於新元素的位置

5.將新元素插入到該位置後

6.重複步驟2~5

**截圖:

最最最最基礎的彈幕功能

lang en charset utf 8 name viewport content width device width,initial scale 1.0 documenttitle body,p,div,h1,h2,h3,h4,h5,h6,ul,ol,li canvas container ...

vector最最最基礎用法(非原創)

在c 中,vector是乙個十分有用的容器,下面對這個容器做一下總結。1 基本操作 1 標頭檔案 include.2 建立vector物件,vectorvec 3 尾部插入數字 vec.push back a 4 使用下標訪問元素,cout vector iterator it for it vec...

Web最最基礎2

1 無序列表 2 有序列表 1 文字框 2 密碼框 3 單選按鈕男女 4 下拉列表 請選擇 北京廣東 5 核取方塊 遊戲測試 銀行測試 6 多行文字框 7 上傳檔案 8 按鈕 確定提交 1 css選擇器 1 html標籤選擇器 當前網頁中同一種標籤會設定成指定的樣式 2 class標籤選擇器 當前網...