Java中常见排序算法实现及性能分析
public class SortingAlgorithm { /**冒泡排序**/ public static void bubbleSort(int[] arr) { int temp; 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]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } /**快速排序**/ public static void quickSort(int[] arr, int left, int right) { if (left > right) { return; } int i = left; int j = right; int pivot = arr[left]; while (i != j) { while (arr[j] >= pivot && i< j) { j--; } while (arr[i]<= pivot && i< j) { i++; } if (i< j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } arr[left] = arr[i]; arr[i] = pivot; quickSort(arr, left, i - 1); quickSort(arr, i + 1, right); } /**归并排序**/ public static void mergeSort(int[] arr, int left, int right) { if(left>=right)return; int mid=(left+right)/2; mergeSort(arr,left,mid); mergeSort(arr,mid+1,right); int i=left;int j=mid+1;int k=0; int[] temp=new int[right-left+1]; while(i<=mid && j<=right) { if(arr[i]以上三种排序算法是Java中常用的,推荐使用归并排序或快速排序即可。
参考资料:
算法 第4版