冒泡排序(Bubble Sort)
冒泡排序(Bubble Sort):排序思路:對要排序的數組或者列表從頭到尾依次比較相鄰的兩個元素的大小關係,若大於則交換位置,否則跳過,經過第一輪比較排序後可得出最大值;
然後使開始第二輪比較,得出第二大的值;依次比較,用同樣的方法對剩下的元素逐個比較。
如果有N個元素,那麼一共要進行N-1輪比較,第M輪要進行N-M次比較,其中M<N。(如果有6個元素,要進行6-1輪比較,第一輪比較6-1次,第三輪比較6-3次)。
比如:對13, 14, 520, 85, 1, 20做冒泡排序;
冒泡排序 排序結果。
選擇排序(Selection Sort)
選擇排序(Selection Sort):
基本思路:選擇某個索引位置的元素,然後和後面元素依次比較,若大於則交換位置,經過第一輪比較排序後可得出最小值,第二輪會選出第二小的值;
然後使用同樣的方法依次對剩下的元素逐個比較即可。第一輪從arr[0]和後面元素相比較,第二輪從arr[1]和後面的元素相比較,依次類推。N個數要進行N-1輪。選擇排序每一輪只進行一次交換,相對於冒泡排序效率高一些。
比如:對13, 14, 520, 85, 1, 20做選擇排序;選擇的索引是0,也就是從第一個元素開始:
在JDK中提供了一個數組的工具類(java.util.Arrays),封裝了對數組的算法操作,以下是一些常用的:
- int binarySearch(type[] arr,type key) 使用二分法查找數組裏某元素並返回其索引,若找不到返回負數.
- void sort(type[] arr) 使用調優後的快速法對指定數組排序。
- String toString(type[] arr) 返回指定數組內容的字符串表示形式。
- public static type[] copyOf(type[] original, int newLength) 複製指定的數組,截取或用 0 填充(如有必要),以使副本具有指定的長度。
完結。老夫雖不正經,但老夫一身的才華