排序方法整理Java - 冒泡排序、选择排序、插入排序、快速排序
生活随笔
收集整理的這篇文章主要介紹了
排序方法整理Java - 冒泡排序、选择排序、插入排序、快速排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*** 排序方法整理* @author zhyea**/
public class Sort {/*** 冒泡排序,從小到大。* 冒泡排序是比較相鄰的兩個元素,若順序錯誤,則執行交換。循環走訪序列直到不需要比較。穩定排序。* @param arr* 待排序的數組*/public static void bubbleSort(int[] arr){int tmp = 0;for(int k=0; k<arr.length; k++){for(int i=1; i<arr.length; i++){if(arr[i-1] > arr[i] ){tmp = arr[i];arr[i] = arr[i-1];arr[i-1] = tmp;}}}}/*** 選擇排序,從小到大* 每次從待排序序列中取出最大(或最小)的一個元素,放入已排好序的序列后面。不穩定排序。* @param arr* 待排序數組*/public static void selectSort(int[] arr){int tmp = 0;for(int k=0; k<arr.length; k++){
for(int i=k+1; i<arr.length; i++){if(arr[i] < arr[k]){tmp = arr[i];arr[i] = arr[k];arr[k] = tmp;}}}}/*** 插入排序,從小到大* 從待排序序列中取出一個,插入已排好序的序列的適當位置,如是重復。穩定排序。* @param arr* 待排序數組* */public static void insertSort(int[] arr){int tmp = 0;for(int k=1; k<arr.length; k++){for(int i=k; i>0; i--){if(arr[i]<arr[i-1]){tmp = arr[i];arr[i] = arr[i-1];arr[i-1] = tmp;}}}}/*** 快速排序,從小到大* 通過一次排序,將待排序序列分成兩部分,其中一部分中的值比另一部分都小;遞歸如上步驟,可完成排序。不穩定排序* 可以通過減少交換優化快速排序,不列出了* @param arr*/public static void quickSort(int[] arr, int low, int high){int l = low;int h = high;int tmp = 0;int key = arr[0];while(h>l){while(h>l && arr[h]>=key){h--;}if(h>l){tmp = arr[l];arr[l] = arr[h];arr[h] = tmp;l++;}else{break;}while(h>l && arr[l]<=key){l++;}if(h!=l){tmp = arr[h];arr[h] = arr[l];arr[l] = tmp;h--;}else{break;}}if(l>low)quickSort(arr, 0, h-1);if(h<high)quickSort(arr, l+1, high);}public static void main(String[] args){int[] arr = {8, 5, 4, 6, 9, 7, 5, 6};System.out.println("冒泡排序" );bubbleSort(arr);printArr(arr);}/*** 循序輸出數組中的每個元素* @param arr* 待輸出數組*/private static void printArr(int[] arr){for(int i=0; i<arr.length; i++){System.out.print(arr[i] + ", ");}System.out.print("\n");}
}
轉載于:https://www.cnblogs.com/amunote/p/4109851.html
總結
以上是生活随笔為你收集整理的排序方法整理Java - 冒泡排序、选择排序、插入排序、快速排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高性能Javascript:高效的数据访
- 下一篇: java美元兑换,(Java实现) 美元