Java 简单算法--排序
1. 冒泡排序
package cn.magicdu.algorithm; public class BubbleSort { public static void main(String[] args) { int[] arr = { 5, 7, 8, 4, 3, 9, 7, 6 }; bubbleSort(arr); } /** * 冒泡排序 * @param arr */ private static void bubbleSort(int[] arr) { int temp=0; for(int i=0;i<arr.length;i++){ for(int j=0;j<arr.length-i-1;j++){ if(arr[j]>arr[j+1]){ temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } bubblePrint(arr); } /** * 打印数组 * @param arr */ private static void bubblePrint(int[] arr) { for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } } }
2.插入排序
package cn.magicdu.algorithm; public class InsertSort { public static void main(String[] args) { int []arr={3,4,2,3,57,8,34,15}; insertSort(arr); } /** * 插入排序 * @param arr */ private static void insertSort(int[] arr) { for(int i=0;i<arr.length;i++){ int temp=arr[i]; int j; for(j=i;j>0;j--){ if(arr[j-1]>temp){ arr[j]=arr[j-1]; }else{ break; } } arr[j]=temp; } insertPrint(arr); } /** * 打印数组 * @param arr */ private static void insertPrint(int[] arr) { for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } } }
3.快速排序
package cn.magicdu.algorithm; public class QuickSort { public static void main(String[] args) { int[] arr = { 1, 4, 6, 2, 3, 4, 7, 8, 9, 5, 65 }; print(arr); quickSort(arr, 0, arr.length - 1); print(arr); } /** * 快速排序 * @param arr * @param low * @param high */ private static void quickSort(int[] arr, int low, int high) { if(low>=high){ return; } if((high-low)==1){ if(arr[0]>arr[1]) swap(arr,0,1); return; } int pivot=arr[low]; int left=low+1; int right=high; while(left<right){ while(left<right&&left<=high){ if(arr[left]>pivot) break; left++; } while(left<=right&&right>low){ if(arr[right]<=pivot) break; right--; } if(left<right){ swap(arr, right, left); } } swap(arr, low, right); quickSort(arr, low, right); quickSort(arr, right+1, high); } /** * 交换数字 * @param arr * @param i * @param j */ private static void swap(int[] arr, int i, int j) { int temp; temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } /** * 打印数组 * @param arr */ private static void print(int [] arr){ for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+","); } System.out.println(); } }