快速排序:
public class kuaisu {
public static void main(String[] args) {
int[] a = {5, 8, 9, 7, 1, 2, 6, 4, 3, 0};
quickSort(a, 0, a.length - 1);
for (int i : a) {
System.out.println(i);
}
}
public static void quickSort(int[] arr, int low, int height) {
//结束
if (low >= height) {
return;
}
//2、初始化
int i, j, base;
i = low;
j = height;
base = arr[low];
//查找一遍
while (i < j) {
//高位查找
while (i < j && base <= arr[j]) {
j--;
}
//低位查找
while (i < j && base >= arr[i]) {
i++;
}
//交换
if (i < j) {
arr[i] = arr[i] + arr[j];
arr[j] = arr[i] - arr[j];
arr[i] = arr[i] - arr[j];
}
}
//交换基准数据
arr[low] = arr[i];
arr[i] = base;
//分治
quickSort(arr, low, i - 1);
quickSort(arr, i + 1, height);
}
}
如果以做左边的为基准值,一定要让右边的先走;
以右边的为基准值,一定要让左边的先走;
选择排序:
public class homeWork01 {
public static void main(String[] args) {
int[] a={5,3,6,2,8,9,1,4,7};
//选择排序
for (int i = 0; i < a.length-1; i++) {
for (int j = i+1; j <a.length ; j++) {
if (a[j]>a[i]){
int tmp=a[j];
a[j]=a[i];
a[i]=tmp;
}
}
}
for (int i:a){
System.out.println(i);
}
}
}
各类排序数据:
有关链接:https://www.runoob.com/w3cnote/ten-sorting-algorithm.html