選擇排序(Selection sort)
是一種簡單直觀的排序算法。它的工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。 選擇排序是不穩定的排序方法。
冒泡排序(Bubble Sort)
是一種計算解學領域的較簡單的排序算法。
它重復地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從A到Z)錯誤就把他們交換過來。走訪元素的工作是重復地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。
這個算法的名字由來是因為越大的元素會經由交換慢慢“浮”到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名“冒泡排序”。
冒泡排序的基本思想是將數組中的每個相鄰元素進行兩兩比較,按照小元素在前(或大元素在前)的原則確定是否進行交換。這樣每一輪執行之后,最大(或最小)的元素就會被交換到了最后一位。 完成一輪之后,我們可以再從頭進行第二輪的比較,直到倒數第二位(因為最后一位已經是被排序好的了)時結束。這樣一輪之后,第二大(或第二小)的元素就會被交換到了倒數第二位。同樣的過程會依次進行,直到所有元素都被排列成預期的順序為止。這個過程是不是很像是水中的起泡一個個冒起來的過程.。
區別:
主要在於交換方式:冒泡法每次比較和移動相鄰的兩項 ;選擇排序每次交換當前項和第n項 。
總的來說,兩種排序比較的次數是相同的 ;
但交換的次數,選擇排序是更少的 。
但通常,選擇排序更快一點 ,
冒泡排序是每一次都可能要交換 ;
而選擇排序是在比較時記下a[i]的位置 最后來交換 ;
所以他們的交換過程是不一樣的 而查找的過程是一樣的 。