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版