//
// created by liyuanshuo on 2017/3/17.
//#include "bubble_sort.h"
/* *基本思想:
* * 在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較
* 大的數往下沉,較小的往上冒。即:每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換
* */
void bubble_sort_1( int a, int n )
} }}/*
*氣泡排序演算法的改進:
* * 對氣泡排序常見的改進方法是加入一標誌性變數exchange,用於標誌某一趟排序過程中是否有資料交換,如果進行
* 某一趟排序時並沒有進行資料交換,則說明資料已經按要求排列好,可立即結束排序,避免不必要的比較過程。本
* **再提供以下兩種改進演算法:
* */
////1.設定一標誌性變數pos,用於記錄每趟排序中最後一次進行交換的位置。由於pos位置之後的記錄均已交換到位,故
//在進行下一趟排序時只要掃瞄到pos位置即可。
//void bubble_sort_2( int r, int n )
} i = pos; }}
//2.傳統氣泡排序中每一趟排序操作只能找到乙個最大值或最小值,我們考慮利用在每趟排序中進行正向和反向兩遍
//冒泡的方法一次可以得到兩個最終值(最大者和最小者) , 從而使排序趟數幾乎減少了一半。
void bubble_sort_3( int r, int n)
} --highh;
for ( j = highh ; j > loww ; --j )
}++loww;
}}
氣泡排序總結
氣泡排序 氣泡排序演算法的運作如下 從後往前 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數...
氣泡排序 排序 氣泡排序
既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...
排序演算法總結(1) 氣泡排序
公升序排列 從第乙個元素開始,對陣列中兩兩相鄰的元素比較,將值較小的元素放在前面,值較大的元素放在後面,一輪比較完畢,乙個最大的數沉底成為陣列中的最後乙個元素,一些較小的數如同氣泡一樣上浮乙個位置。n個數,經過 n 1輪比較後完成排序。如下 public class bubblesort priva...