排序總結系列一 氣泡排序

2021-07-23 10:24:30 字數 745 閱讀 5180

氣泡排序步驟:設陣列長度為n

1.比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。

2.這樣對陣列的第0個資料到n-1個資料進行一次遍歷後,最大的乙個資料就「沉」到陣列第n-1個位置。

3.n=n-1,如果n不為0就重複前面二步,否則排序完成。

//氣泡排序1

void bubblesort1(int *arr,int len)

} }}

//氣泡排序2

void bubblesort2(int *arr, int len)

}}

//氣泡排序3

//優化:設定乙個標誌,如果這一趟發生了交換,則為true,否則為false。如果有一趟沒有發生交換,說明排序已經完成

void bubblesort3(int *arr, int len)

} len--;

}}

//氣泡排序4

進一步的優化:如果有100個數的陣列,僅前面10個無序,後面90個都已排好序且都大於前面10個數字,那麼在第一趟遍歷後,最後發生交換的位置必定小於10,且這個位置之後的資料必定已經有序了,記錄下這位置,第二次只要從陣列頭部遍歷到這個位置就可以了。

void bubblesort4(int a, int n)

} }}

排序系列 比較排序系列之 氣泡排序

氣泡排序屬於交換排序的一種典型的交換排序。交換排序的基本思想是 兩兩比較待排序的關鍵碼,發現記錄逆置則進行交換,知道沒有逆置對位置。對於氣泡排序而言,則就是單純的兩兩進行比較,知道不能再繼續冒泡為止。我們通過 45,34,78,12,34 32,29,64 陣列為例,進行講解。i值過程 i 0j 7...

排序總結 氣泡排序

created by liyuanshuo on 2017 3 17.include bubble sort.h 基本思想 在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較 大的數往下沉,較小的往上冒。即 每當兩相鄰的數比較後發現它們的排序與排序要...

JS排序演算法總結 (一)氣泡排序

目的 掌握氣泡排序的基本思想與過程 實現 時間複雜度與優化 1 基本思想與過程 從後向前兩兩比教,大數下沉,小數冒泡,一輪比較後,最小數的位置就排好了,在第乙個位置。重複上述過程,依次將第2.3.n 1個最小數排好位置。2 實現 function bubblesort arr console.log...