Java——用Java實現氣泡排序,選擇排序,快速排序和二分查詢
阿新 • • 發佈:2018-12-09
在學習C語言時,就有講過這三個排序演算法和二分查詢的演算法。
以下是用Java來實現氣泡排序(Bubble Sort)演算法,選擇排序(Selection Sort),快速排序(Quick Sort)和二分查詢(Binary Search)
package pra_07; public class J_14 { public static void main(String[] args) { int[] arr={24,75,65,98,20}; bubble_sort(arr); //氣泡排序 int[] arr2={24,75,65,98,20}; selection_sort(arr2); //選擇排序 int[] arr3={24,75,65,98,20}; quickSort(arr3); //快速排序 for (int i = 0; i < arr3.length; i++) { System.out.println(arr3[i]); } int index2=binary_search(arr2,-2); System.out.println(index2+1); } //氣泡排序 public static void bubble_sort(int[] arr){ int k=0; for (int i = 0; i < arr.length-1; i++) { for (int j = 0; j < arr.length-1-i; j++) { if(arr[j]>arr[j+1]){ k=arr[j]; arr[j]=arr[j+1]; arr[j+1]=k; } } } for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } //選擇排序 public static void selection_sort(int[] arr){ int k=0; for (int i = 0; i < arr.length-1; i++) { for (int j = i+1; j < arr.length; j++) { if(arr[i]>arr[j]){ k=arr[i]; arr[i]=arr[j]; arr[j]=k; } } } for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } //快速排序 public static void sort(int a[], int start, int end) { int i, j, index; if (start > end) { return; } i = start; j = end; index = a[i]; while (i < j) { while (i < j && a[j] >= index) j--; if (i < j) a[i++] = a[j]; while (i < j && a[i] < index) i++; if (i < j) a[j--] = a[i]; } a[i] = index; sort(a, start, i - 1); sort(a, i + 1, end); } public static void quickSort(int a[]) { sort(a, 0, a.length-1); } //二分查詢 public static int binary_search(int a[],int value){ int min=0,max=a.length-1,mid=(min+max)/2; while(a[mid]!=value){ if(a[mid]<value){ min=mid+1; }else if(a[mid]>value){ max=mid-1; } mid=(min+max)/2; if(min>max){ return -2; } } return mid; } }