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版