幾種簡單的排序

2021-06-28 21:50:28 字數 984 閱讀 2004

今天檢視了arrays.sort(a);的源**,發現好複雜,根據a的長度不同,arrays.sort(a)會呼叫不同的排序方法。

簡單複習了下:

快速排序:很簡單,把比某個數大的放右邊,小的放左邊。

private static int partition(int n, int left, int right) 

if (n[right] < pivot)

while (left < right && n[left] < pivot)

if (n[left] > pivot)

n[left] = pivot;

}// system.out.println("left=" + left);

return left;

}

選擇排序: * 選擇排序(selection sort)的工作原理是:首先在未排序序列中找到最小(大)元素,

* 存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,

* 然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

private static void selectionsort2(int arr) 

}if (max != i)

} }

冒泡法: * 氣泡排序演算法的運作如下:(從後往前)

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較

private static void bubblesort(int arr) 

}} }

幾種簡單的排序

1.氣泡排序 主要思路 從前往後依次交換兩個相鄰的元素,大的交換到後面,這樣每次大的資料就到後面,每一次遍歷,最大的資料到達最後面,時間複雜度是o n 2 2.選擇排序 主要思路 每次遍歷序列,從中選取最小的元素放到最前面,n次選擇後,前面就都是最小元素的排列了,時間複雜度是o n 2 3.插入排序...

幾種簡單的排序

選擇排序 思想 每一趟從待排序的資料元素中選出最小 或最大 的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法。public static voidselectsort intarr temp arr i arr i arr index arr ind...

幾種簡單的排序演算法

整理了一下幾種簡單的排序演算法,暫時先貼上演算法,以後有時間在乙個乙個注釋 參考 下面是 部分 include 演算法1 氣泡排序,時間複雜度o n 2 基本思想 從最後乙個數開始,每次相鄰兩個數字比較,較小數往上浮動 void bubblesort int a,int c 演算法2 選擇排序,時間...