基本思想就是:设置一个key=48 从后往前比 如果后面数小于48 那就交互位置,再从前往后比,如果前面数大于48就交换位置,从后往前比,以此类推。
java代码实现:
public class ArithmeticQuickSort {
public void quick_sort(int[] arrays, int lenght) {
if (null == arrays || lenght < 1) {
System.out.println("input error!");
return;
}
_quick_sort(arrays, 0, lenght - 1);
}
public void _quick_sort(int[] arrays, int start, int end) {
if (start >= end) {
return;
}
int i = start;
int j = end;
int value = arrays[i];
boolean flag = true;
while (i != j) {
if (flag) {
if (value > arrays[j]) {
swap(arrays, i, j);
flag = false;
} else {
j--;
}
} else {
if (value < arrays[i]) {
swap(arrays, i, j);
flag = true;
} else {
i++;
}
}
}
snp(arrays);
_quick_sort(arrays, start, j - 1);
_quick_sort(arrays, i + 1, end);
}
public void snp(int[] arrays) {
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i] + " ");
}
System.out.println();
}
private void swap(int[] arrays, int i, int j) {
int temp;
temp = arrays[i];
arrays[i] = arrays[j];
arrays[j] = temp;
}
public static void main(String args[]) {
ArithmeticQuickSort q = new ArithmeticQuickSort();
int[] a = { 49, 38, 65, 12, 45, 5,87,78 };
q.quick_sort(a, 8);
}
}