用Java語言實現氣泡排序和插入排序

2021-08-08 09:29:37 字數 1406 閱讀 9262

一.氣泡排序

(英語: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語言實現)

氣泡排序和選擇排序是排序演算法中比較簡單和容易實現的演算法。氣泡排序的思想為 每一次排序過程,通過相鄰元素的交換,將當前沒有排好序中的最大 小 移到陣列的最右 左 端。而選擇排序的思想也很直觀 每一次排序過程,我們獲取當前沒有排好序中的最大 小 的元素和陣列最右 左 端的元素交換,迴圈這個過程即可實...