今天檢視了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 選擇排序,時間...