public class test ;
system.out.println(arrays.tostring(arrs)) ;
//mergesort(arrs, 0, arrs.length-1) ;
//quicksort(arrs, 0, arrs.length - 1) ;
heapsort(arrs) ;
system.out.println(arrays.tostring(arrs)) ;
}}
private static void swap(int array, int low, int high)
public static void insertsort(int arr)
else }}
}
public static void selectsort(int arr) }}
}
public static void bubblesort(int arr) }}
}
public static void mergesort(int arr, int low, int high)
}public static void merge(int arr, int left, int center, int right)
else
}//拷貝剩餘元素
while(left <= center)
while(r1 <= right)
//將臨時陣列中的元素拷貝至原陣列
k = 0 ;
for(int i=start; i<=right ; i++)
}
public static void mergesort(int arr) //元素個數小於step
merge(arr, low, mid, high);
low = high + 1 ; //下次歸併的下界}}
}public static void merge(int arr, int left, int center, int right)
else
}//拷貝剩餘元素
while(left <= center)
while(r1 <= right)
//將臨時陣列中的元素拷貝至原陣列
k = 0 ;
for(int i=start; i<=right ; i++)
}
public static void quicksort(int array, int low, int high)
}private static int partition(int array, int low, int high)
swap(array, low, high) ;
while(low < high && pivot >= array[low])
swap(array, low, high) ;
}return low ;
}
public static void quicksort(int array)
//儲存劃分後所形成空間的左右端點
stackstack = new stack() ;
stack.push(0) ;
stack.push(array.length - 1) ;
int low, high ;
while(! stack.isempty())
int i = partition(array, low, high) ;
stack.push(low) ; //儲存左邊的區間
stack.push(i-1) ;
stack.push(i+1) ; //儲存右邊的區間
stack.push(high) ;}}
private static int partition(int array, int low, int high)
swap(array, low, high) ;
while(low < high && pivot >= array[low])
swap(array, low, high) ;
}return low ;
}
public static void heapsort(int heap)
}public static void buildheap(int heap)
}public static void adjustheap(int heap, int size, int start)
if(right<=size && heap[right]>heap[big])
if(start == big) //調整完畢
else
}}
常見排序之Java實現
public class test system.out.println arrays.tostring arrs mergesort arrs,0,arrs.length 1 quicksort arrs,0,arrs.length 1 heapsort arrs system.out.print...
Java實現常見的排序演算法之快排(快速排序)
對於快排,無論是看別人面經,還是自己親身的筆試面試經歷,都是經常會遇到的。所以在此,本人僅通過部落格的形式記錄下來,以便自己查閱,或給其他有需要的人用作參考也好。public class sortmethods int datasorted quicksort testdata,0,testdata...
Java實現幾種常見排序方法
1.冒泡演算法 就是每次相鄰的兩個元素比較,如果第乙個比第二個大,就交換位置,大的 下沉 小的 上漂 迴圈每次找出最大的那個,以此類推,比較length 1次。2.選擇排序 選擇排序是一種簡單直觀的排序方法,每次尋找序列中的最小值,然後放在替換當前迴圈的最小位的位置。3.插入排序 認為第乙個元素已經...