-`package com.it.sort_test;
public class T1 {
public static void main(String[] args) {
int a[]={31,5,7,4};
//冒泡排序
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println("-------------------");
//选择排序
for(int i=0;i<a.length-1;i++){
int minIndex=i;
for(int j=i+1;j<a.length;j++){
if(a[i]>a[j]){
minIndex=j;
}
}
int temp=a[i];
a[i]=a[minIndex];
a[minIndex]=temp;
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println("-------------------");
//插入排序
for(int i=1;i<a.length;i++){
if(a[i]<a[i-1]){
int pos=-1;
for(int j=0;j<i;j++){
if(a[j]>a[i]){
pos=j;
break;
}
}
int temp=a[i];
for(int k=i-1;k>=pos;k--){
a[k+1]=a[k];
}
a[pos]=temp;
}
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println("-------------------");
//快速排序
int[] arr = {5,9,4,6,8,1,0};
quickSort(arr, 0, arr.length-1);
for (int i : arr) {
System.out.print(i+", ");
}
}
//快速排序
public static void quickSort(int [] arr,int left,int right){
if(left > right){
return;
}
//base存放基数
int base = arr[left];
int i = left, j = right;
while(i != j){
//先从右往左找,找比基准数小的数
while(arr[j] > base && i < j){
j--;
}
//再从左往右找比基准数大的数
while(arr[i] <= base && i<j){
i++;
}
//交换刚找出的两边数字
if(i < j){
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
//基准数移到中间,分成左右两个区间
arr[left] = arr[i];
arr[i] = base;
//分别对左右两边的区间进行重复操作
quickSort(arr,left,i - 1);
quickSort(arr,i + 1,right);
}
}
`