//插入排序
public static void insertSort(int[] a) {
//从i=1开始
for (int i = 1; i < a.length; i++) {
int j;
//保存当前的值
int temp = a[i];
for (j = i; j > 0; j--) {
//如果当前准备插入的值小于前1位的值
if (a[j - 1] > temp) {
//值后移
a[j] = a[j - 1];
} else {
break;
}
}
//确定插入的位置
a[j] = temp;
}
}
/*
* 快速排序
* @param a 待排序数组
* @param low 数组最小下标
* @param high 数组最大下标
*/
public static void quickSort(int[] a, int low, int high) {
//定义临时变量,保留low high的值
int i = low;
int j = high;
if(i < j) {
//存放分界点的值
int temp = a[i];
while(i < j) {
//如果高位不小于分界值,循环继续
while(i < j && a[j] >= temp) {
//高位的下标向中间移
j--;
}
//交换高低位的值
a[i] = a[j];
//如果低位的值不大于分界值,循环继续
while(i < j && a[i] <= temp) {
//低位下标向中间移
i++;
}
//交换高低位的值
a[j] = a[i];
}
//i为找到的分界点下标,赋值
a[i] = temp;
//递归判断分界点两边的值
quickSort(a, low, i-1);
quickSort(a, i+1, high);
}
}
----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------