十大排序演算法 冒泡法

2021-10-05 05:11:13 字數 1346 閱讀 7122

定義:它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序(如從大到小、首字母從z到a)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。這個過程類似於水泡向上公升一樣,因此而得名。

(由小到大)

把相鄰的兩個數進行比較,如果第乙個數比第二個數大,就交換位置,依次進行比較第一次迴圈就把最大的數移動到了最後乙個位置,第二次迴圈除了最後乙個數其他數字重複以上步驟就把第二大的數字移動到了倒數第二個位置,依次進行迴圈比較。

(由大到小)

把相鄰的兩個數進行比較,如果第乙個數比第二個數小,就交換位置,依次進行比較第一次迴圈就把最小的數移動到了最後乙個位置,第二次迴圈除了最後乙個數其他數字重複以上步驟就把第二小的數字移動到了倒數第二個位置,依次進行迴圈比較。

氣泡排序就是把小的元素往前調或者把大的元素往後調。比較的是相鄰的兩個元素,交換也發生在這兩個元素之間。所以,如果兩個元素相等,是不會再交換的;如果兩個相等的元素沒有相鄰,那麼即使通過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,所以相同元素的前後順序並沒有改變,所以氣泡排序是一種穩定排序演算法

由vs code編譯成功的c語言**

注意:

1.由於scanf函式的實現原理,所有標量引數的前面必須加上乙個「&」符號;陣列名做引數前面就不需要加上「&」符號,但是,陣列中的某個特定的元素做引數就需要加上「&」符號。

2.使用所有格式碼(除了%c之外)時,輸入值之前的空白(空格、製表符、換行符等)會被跳過,值後的空白表示該值得結束。注意scanf不能接受空格、製表符、換行符等

格式:int a; scanf(「%d」,&a);

格式:printf(「格式控制字串」,輸出列表)

「%d」表示按十進位制整型輸出

「%ld」表示按十進位製長整型輸出

「%c」表示按字元型輸出

「%s」表示按字串輸出

「%f」表示按實數輸出

「%lf」表示雙精度實數

#include

#include

void

main()

//排序(由小到大排序)

/*for(i=0;i<9;i++)

}}*/

//排序(由小到大排序)

/*for(i=0;i<9;i++)}}

//列印排序結果

for(i=

0;i<

10;i++

)system

("pause");

//防止按回車閃退,在退出程式前調動系統的暫停命令

}

十大排序演算法之氣泡排序

整理下最近學習的演算法,也方便有需要的人檢視 簡單排序 插入排序 選擇排序 氣泡排序 必學 分治排序 快速排序 歸併排序 必學 分配排序 桶排序 基數排序 樹狀排序 堆排序 必學 其他 計數排序 必學 希爾排序 原理 通過比較相鄰的兩個元素的大小實現排序,如果後邊的元素大於前面的元素,那麼就交換元素...

十大排序演算法之氣泡排序

氣泡排序是一種簡單的排序方法。基本的演算法思想就是對要排序的一組資料進行一遍遍的遍歷,每次遍歷都對相鄰的元素進行比較且調整順序,直到這組資料沒有需要調整的地方,排序完成。下面先用文字敘述一下該排序演算法 公升序 1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個,從頭一直比到尾,這樣最終,隊尾...

python十大排序演算法 氣泡排序

演算法描述 是一種簡單直觀的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。演算法步驟 比較相鄰的元素。如果第...