public class SortTest {
//冒泡排序
public static int[] bubbleSort(int[] arr){
for (int j = arr.length - 1 ; j > 0 ; j --){
for (int i = 1 ; i <= j ; i ++){
if (arr[i - 1] > arr[i]){
int temp = arr[i];
arr[i] = arr[i-1];
arr[i-1] = temp;
}
}
}
return arr;
}
//选择排序
public static int[] chooseSort(int[] arr){
for (int i = 0 ; i < arr.length - 1 ; i ++){
int minIndex = i;
for (int j = i + 1 ; j < arr.length ; j ++){
if ( arr[j] < arr[minIndex]){
minIndex = j;
}
}
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
return arr;
}
//快速排序
public static int[] quickSort(int[] arr , int start , int end){
int i = start;
int j = end;
int pivot = arr[start];
while (i < j){
while (i < j && arr[j] > pivot)
j --;
while (i < j && arr[i] < pivot)
i++;
if (arr[i] == arr[j] && i < j){
i++;
}else{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
//递归遍历左边和右边数组
if (start < i - 1){
quickSort(arr , start , i-1);
}
if (j + 1 < end){
quickSort(arr, j + 1 ,end);
}
return arr;
}
public static void main(String[] args) {
int[] myArr = {23,45,65,32,12,1,3,5,7};
// System.out.println(Arrays.toString(bubbleSort(myArr)));
// System.out.println(Arrays.toString(chooseSort(myArr)));
System.out.println(Arrays.toString(quickSort(myArr , 0 , myArr.length - 1)));
}
}