氣泡排序C語言版,綜合分析

2021-10-18 10:47:16 字數 726 閱讀 5000

思想:假設我們排公升序

在乙個陣列arr[ ]中,資料個數確定,n個資料,從第乙個開始,把第乙個當作比較依據,我們挨個往後兩兩比較,找到比當前數大的就交換,小於等於的就拿下乙個數字作為下一次的比較依據,這樣直到兩個數字比較完,把最大數排到最後,成功排出最後乙個最大數字,下一次整個比較變為n-1。

直到要比較的數字個數變為1,所有的數字都排完序。

排降序的話,就是從最後乙個開始,從後往前比較。

圖示:

時間複雜度:o(n²/2)

空間複雜度:o(1)

根據思想來判斷,是按乙個方向,依次進行的比較交換,並不會交換相同資料的相對位置,所以是穩定的。

a表示陣列位址,n代表陣列大小。

void

swap

(int

* num1,

int* num2)

void

bubblesort

(int

* a,

int n)}if

(!change)

//如果沒改變任何位置,說明已經有序。直接退出。

end--;}

}

氣泡排序(C語言版)

氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。它的變化過程如下圖 下面我們用 實現 include includeint main for j 0 j 9 j...

氣泡排序 c語言版

氣泡排序是我們在排序中比較常見的一種排序,它的思路簡單,但應用卻十分廣泛,今天我們就來看看它的 以及它是如何實現的。以下是 include void sort int a,int len int main void int i 0 sort a,6 for i 0 i 6 i printf n re...

經典排序 氣泡排序 C語言版

本人小白一枚,為了能夠更好的學習和記錄,故用這個部落格記錄學習過程,也希望得到各位高人的指點。現在就從最基礎的經典演算法開始!如有不對,希望得到指正,這樣才能更好的進步 氣泡排序 從前面開始,前後數字比較,將大的交換到後面,則迴圈一輪下來最大的數字到了最後,以此類推每次迴圈都將最大的放在最後 如果第...