一.氣泡排序
(英語:bubble sort
,台灣另外一種譯名為:
泡沫排序
)是一種簡單的
排序演算法
。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。
氣泡排序演算法的運作如下:
比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
針對所有的元素重複以上的步驟,除了最後乙個。
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
以上覆制自維基百科。
**如下:
/**
* 氣泡排序
*/private void bubblesort(int numbers)
int lenght=numbers.length;
int temp;
for (int i=0;inumbers[j+1])}}
}
二、插入排序
(英語:insertion sort
)是一種簡單直觀的
排序演算法
。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。
插入排序
在實現上,通常採用in-place排序(即只需用到o(1)的額外空間的排序),因而在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。
一般來說,插入排序都採用in-place在陣列上實現。具體演算法描述如下:
從第乙個元素開始,該元素可以認為已經被排序
取出下乙個元素,在已經排序的元素序列中從後向前掃瞄
如果該元素(已排序)大於新元素,將該元素移到下一位置
重複步驟3,直到找到已排序的元素小於或者等於新元素的位置
將新元素插入到該位置後
重複步驟2~5
以上覆制自維基百科
**如下:
/**
* 插入排序
*/private void insertionsort(int numbers)
int size=numbers.length;
int current;//當前遍歷到的值
for(int i=1;ij;k--)
//往後移動後會留出乙個空的位置,將當前遍歷到的值放入該位置
numbers[j]=current;
break;}}
}}
用java實現氣泡排序和選擇排序
氣泡排序 依次比較兩個相鄰的元素,將值大的元素交換至右端,一輪比較過後,最大的元素在最右端。public class bubblesort 隨意定義個陣列,測試 bubblesort arr public static void bubblesort int arr 遍歷陣列 for int i 0...
氣泡排序和選擇排序c語言實現
說明 執行程式先輸入乙個數,為陣列的長度,會隨機生成乙個陣列,然後分貝用選擇排序和氣泡排序實現從小到大的排序.實驗結果 選擇排序演算法,從小到大 int temp 0 for int i 0 i n i 氣泡排序演算法,從小到大 for int i 0 i n i for int i 0 i n i...
氣泡排序和選擇排序(Go語言實現)
氣泡排序和選擇排序是排序演算法中比較簡單和容易實現的演算法。氣泡排序的思想為 每一次排序過程,通過相鄰元素的交換,將當前沒有排好序中的最大 小 移到陣列的最右 左 端。而選擇排序的思想也很直觀 每一次排序過程,我們獲取當前沒有排好序中的最大 小 的元素和陣列最右 左 端的元素交換,迴圈這個過程即可實...