冒泡 選擇 快速排序演算法(附java實現原始碼)

2021-06-23 09:18:01 字數 1249 閱讀 5924

氣泡排序:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。具有穩定性,時間複雜度為o(n^2) 不及堆排序,快速排序o(nlogn,底數為2)。

public class buddlesort 

}} }

}

選擇排序:每一趟從待排序的陣列元素中選出最小(或最大)的乙個元素, 順序放在已拍好的數列的最後,直到全部待排序的資料元素排完,快速排序是不穩定的排序方法。

public class selectsort 

system.out.println("排序前的陣列為:");

for (int n : sort)

system.out.println();

selectsort(sort);

system.out.println("通過選擇排序排序後的陣列為:");

for (int n : sort)

} private static void selectsort(int sort)

}} }

}

快速排序:在要排序的數列中選取乙個元素(通常選用第乙個元素)作為關鍵元素,然後將所有比它小的元素放在它前面,所有比它大的數放在它後面。

public class quicksort ;

sort(arrs);

for (int t : arrs)

} public void sort(int arrs)

private void sort(int arrs, int from, int to)

// 分割槽操作,從from排序到to,找到基準值,並放到數字的相應位置,再返回這個位置的索引

int p = partition(arrs, from, to);

// 再遞迴對from到基準位置進行排序

sort(arrs, from, p);

// 再遞迴對基準位置+1到to位置進行排序

sort(arrs, p + 1, to);

} // 一次partition操作目標:從from到to

private int partition(int arrs, int from, int to)

// 以上記住了兩個下標,i中存了比基值大的值的索引,j中存了比基值小的值的索引,如果i=j,表明一次迴圈結束,找到了基準值的位置,將這個基準值位置返回

return j;

}}

Java演算法之排序(快速,冒泡,歸併,選擇)

下面是個人整理的幾種排序演算法,不算太難,有一定基礎的認真看看都可理解。歸併演算法思想比較簡單,但在寫 時要注意處理好邊界問題,注意對陣列的賦值和改變。選擇排序 選擇排序 public class n1 1 public n1 1 int a public int result temp a i a...

排序演算法(冒泡 選擇 插入)附Java演示原始碼

一 氣泡排序 1 執行過程 以生活中按身高排隊為例。比較兩人的身高 如果左邊的隊員高,則兩隊員交換位置 向右移動一位,比較下面兩個隊員。可見,一直比較到佇列的最右端後,個子最高的隊員在最右端。即選出了隊伍中最 的人。但還沒有所有隊員排好序。接下來,進行第二趟排序,可選出次高的隊員,以此類推。2 演示...

Java實現冒泡,快速,選擇,插入排序演算法

排序演算法 有很多,包括 插入排序 氣泡排序 堆排序 歸併排序 選擇排序,計數排序 基數排序 桶排序 快速排序 等。插入排序,堆排序,選擇排序,歸併排序和快速排序,氣泡排序都是比較排序,它們通過對 陣列中的元素進行比較來實現排序,其他排序演算法則是利用非比較的其他方法來獲得有關輸入陣列的排序資訊。一...