選擇排序(selection sort)
是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。 選擇排序是不穩定的排序方法。
氣泡排序(bubble sort)
是一種計算解學領域的較簡單的排序演算法。
它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從a到z)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。
這個演算法的名字由來是因為越大的元素會經由交換慢慢「浮」到數列的頂端(公升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名「氣泡排序」。
氣泡排序的基本思想是將陣列中的每個相鄰元素進行兩兩比較,按照小元素在前(或大元素在前)的原則確定是否進行交換。這樣每一輪執行之後,最大(或最小)的元素就會被交換到了最後一位。 完成一輪之後,我們可以再從頭進行第二輪的比較,直到倒數第二位(因為最後一位已經是被排序好的了)時結束。這樣一輪之後,第二大(或第二小)的元素就會被交換到了倒數第二位。同樣的過程會依次進行,直到所有元素都被排列成預期的順序為止。這個過程是不是很像是水中的起泡乙個個冒起來的過程.。
區別:
主要在於交換方式:冒泡法每次比較和移動相鄰的兩項 ;選擇排序每次交換當前項和第n項 。
總的來說,兩種排序比較的次數是相同的 ;
但交換的次數,選擇排序是更少的 。
但通常,選擇排序更快一點 ,
氣泡排序是每一次都可能要交換 ;
而選擇排序是在比較時記下a[i]的位置 最後來交換 ;
所以他們的交換過程是不一樣的 而查詢的過程是一樣的 。
選擇排序與氣泡排序的區別
氣泡排序 氣泡排序 bubblesort 的基本概念是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數 放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此第一趟結束,將最大的數放...
氣泡排序與選擇排序的區別分析
氣泡排序與選擇排序很類似,有些初學者不注意很容易將兩者混淆,因此想寫一篇部落格,詳解兩種排序演算法的區別。第1輪排序 首先進行第1輪排序,黃色代表當前比較的元素,綠色代表已經歸位的元素。1 比較第1個和第2個元素,4 3,交換。2 比較第2個和第3個元素,1 3,不交換。3 比較第3個和第4個元素,...
選擇排序與氣泡排序區別與比較
每一趟從待排序的資料元素中選出最小 或最大 的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法。如果在 c 語言中去實現選擇排序,我們最常見的就是兩層迴圈的實現方式。從選擇排序的思想出發,我們都不難看出 n s圖如下 演算法如下 for i 0,n 2...