选择排序
import java.util.*;
/**
* 选择排序
*/
public class Main {
public static void main(String[] args) {
int[] arr = {12, 2, 33, 1, 21, 3, 11, 3};
System.out.println("初始值" + Arrays.toString(arr));
xuanze(arr);
}
private static void xuanze(int[] arr) {
for(int i = 0; i < arr.length; i++){
for(int j = i; j < arr.length; j++){
if(arr[i] > arr[j]){
int tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
}
}
}
System.out.println("选择:" + Arrays.toString(arr));
}
}
冒泡排序
import java.util.*;
/**
* 冒泡排序
*/
public class Main {
public static void main(String[] args) {
int[] arr = {12, 2, 33, 1, 21, 3, 11, 3};
System.out.println("初始值" + Arrays.toString(arr));
maopao(arr);
}
private static void maopao(int[] arr) {
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr.length - 1; j++){
if(arr[j] > arr[j+1]){
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
System.out.println("冒泡:" + Arrays.toString(arr));
}
}
快速排序
import java.util.*;
/**
* 快速排序
*/
public class Main {
public static void main(String[] args) {
int[] arr = {12, 2, 33, 1, 21, 3, 11, 3};
kuaisu(arr, 0, arr.length-1);
System.out.println(Arrays.toString(arr));
}
private static void kuaisu(int[] arr, int low, int high) {
int i,j,tmp;
if(low > high){
return;
}
i = low;
j = high;
tmp = arr[low];
while (i < j ){
while (tmp <= arr[j] && i < j ){
j--;
}
while (tmp >= arr[i] && i < j ){
i++;
}
if( i < j ) {
int x = arr[i];
int y = arr[j];
arr[i] = y;
arr[j] = x;
}
}
// i == j , 交换第一轮的基准值到它应该的位置
arr[low] = arr[i];
arr[i] = tmp;
kuaisu(arr, low, j-1);
kuaisu(arr, j+1, high);
}
}