package com.aograph.controller;
public class MyTest {
public static void main(String[] args) {
//BubbleSort2();
int[] arr = {6,3,8,2,9,1};
quickSort(arr,0,arr.length-1);
for (int a: arr) {
System.out.println(a);
}
}
private static void quickSort(int[] arr,int low,int high) {
int i,j,temp,t;
if (low > high) return;
i = low;
j = high;
//temp 就是基准位
temp = arr[low];
while (i < j) {
//先看右边,依次往左递减
while (temp<=arr[j] && i<j) {
j--;
}
//再看左边,依次往右递增
while (temp>=arr[i]&&i<j) {
i++;
}
//如果满足条件则交换
if (i<j) {
t = arr[j];
arr[j] = arr[i];
arr[i] = t;
}
}
//最后将基准为与i和j相等位置的数字交换
arr[low] = arr[i];
arr[i] = temp;
//递归调用左半数组
quickSort(arr, low, j-1);
//递归调用右半数组
quickSort(arr, j+1, high);
}
private static void BubbleSort2() {
int[] arr = {6,3,8,2,9,1};
for (int i=0;i<arr.length-1;i++) {
boolean flag = false;
for (int j=0;j<arr.length-1-i;j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = true;
}
}
if (!flag) {
break;
}
}
for (int a: arr) {
System.out.println(a);
}
}
private static void BubbleSort() {
int[] arr = {6,3,8,2,9,1};
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]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for (int a: arr) {
System.out.println(a);
}
}
}