package 交换排序;
public class SwitchSort {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int[] input = new int[]{0,9,1,5,8,3,7,4,6,2};
switchSort(input);
for(int k : input){
System.out.print(k + "\t");
}
System.out.println();
int[] input1 = new int[]{0,9,1,5,8,3,7,4,6,2};
bubbleSort(input1);
for(int k : input1){
System.out.print(k + "\t");
}
}
/**
* 冒泡排序
* @param input1
*/
private static void bubbleSort(int[] input) {
// TODO 自动生成的方法存根
int i,j;
for(i=0 ; i<input.length-1 ; i++){
for(j=i+1 ; j<input.length ; j++){
if(input[i] > input[j]){
swap(input,i,j);
}
}
}
}
/**
* 快速排序
* @param input
*/
private static void switchSort(int[] input) {
QuickSort(input,1,input.length-1);
}
private static void QuickSort(int[] input, int begin, int end) {
// TODO 自动生成的方法存根
int pivot;
if(begin < end){
pivot = Partition(input,begin,end);
QuickSort(input,begin,pivot-1);
QuickSort(input,pivot+1,end);
}
}
private static int Partition(int[] input, int begin, int end) {
int pivotkey;
pivotkey = input[begin];
while(begin < end){
while(begin < end && input[end] >= pivotkey)
end--;
swap(input,begin,end);
while(begin < end && input[begin] <= pivotkey)
begin++;
swap(input,begin,end);
}
return begin;
}
private static void swap(int[] input, int begin, int end) {
// TODO 自动生成的方法存根
int temp = input[begin];
input[begin] = input[end];
input[end] = temp;
}
}