1.快速排序算法:
任取一个数据(下面代码直接取第一个数据)作为关键数据,然后将所有比它小的元素移到它前面,比他大的元素移到他后面,这个过程称为一趟排序。然后运用递归思想,对关键数据的前面部分和后面部分再进行前面所述过程。
package lan.algorithm.sort;
public class QuickSort implements Sort {
@Override
public void sort(int[] array) {
sort(array, 0, array.length - 1);
}
public void sort(int[] array, int low, int high) {
if (low < high) {
int i = low;
int j = high;
int key = array[low];
while(i < j){
while(j > i){
if(key > array[j]){
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
break;
}
j--;
}
while(i < j){
if(key < array[i]){
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
break;
}
i++;
}
}
sort(array, low, i - 1);
sort(array, i + 1, high);
}
}
}