插入排序
public static int[] insert_sort(int arr[]){
int i = 0,temp; //插入排序
for(int j = 1;j<arr.length ;j++){ //遍历外层循环,从第2个数开始
temp=arr[j];
i=j-1;
while(i>=0 && arr[i]>temp){
arr[i+1]=arr[i];
i--;
}
arr[i+1]=temp;
}
return arr;
}
冒泡排序
public static void bubbleSort(int arr[]){
int temp = 0 ;
for(int i = 0 ;i<arr.length-1;i++){
for(int j = 0 ; j<arr.length-1-i;j++){
if(arr[j+1]<arr[j]){
temp=arr[j+1];
arr[j+1] =arr[j];
arr[j]=temp;
}
}
}
}
快速排序
public static void swap(int a[], int i, int j) {
if(i == j) return;
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
public static int partition(int arr[],int start,int end){
int i=start-1;
int key = arr[start-1];
for(int j = 0 ; j<end;j++){
if(arr[j]<key)
i++; //判断 key左边有几个
swap(arr, i, j);
}
}
swap(arr, i+1, start-1); //key 有三个 就交换key和第四个位置的值
return i+1;
}
public static void quickSort(int array[], int start, int end) {
if (start< end) {
int p = partition(array, start, end);
quickSort(array, start, p - 1);
quickSort(array, p + 1, end);
}
}