面试——常见排序算法总结

参考地址:https://www.cnblogs.com/alsf/p/6606287.html

冒泡:

public static void bubble(int [] arr) {
    if (arr== null || arr.length<2) {
    return;
}
 for (int i= arr.length-1;i>0;i--) {
    for (int j=0 ;j

快排:

  public static void quick(int[] arr) {
        quicksort(arr,0,arr.length-1);
}

public static void quicksort(int[] arr , int l,int r) {
        if (larr[R]) {
				swap(arr,l,--R);
			}else if(arr[l]

 归并:

public static void mergesort(int arr[]) {
	if(arr==null || arr.length<2) {
		return ;
	}
	mergesort(arr,0,arr.length-1);
}
private static void mergesort(int[] arr, int i, int j) {
	if (i==j) {
		return; 
	}
		int mid = i+ ((j-i)>>1);
		mergesort(arr,i,mid);
		mergesort(arr,mid+1,j);
		merge(arr,i,mid,j);
	
	
}
private static void merge(int[] arr, int i, int mid, int j) {
	int[] help = new int [j-i+1];
	int p1 = i;
	int p2= mid+1;
	int index=0;
	while (p1<=mid && p2 <= j) {
		help[index++]= arr[p1]

 

你可能感兴趣的:(Java面试)