一、常见排序算法
快速排序:
属于“交换排序”。
数组中选择一个目标值,从左右两边开始,分别与目标值比较,要求左边值均小于等于目标值,右边值均大于等于目标值,否则交换元素位置。比较完成后,将目标值放置数组中间,然后递归分别对左右两部分排序。
public static int[] qsort(int arr[], int start, int end) {
int target = arr[start];
int i = start;
int j = end;
while(i < j) {
while((arr[j] > target) && (i < j)) {
j--;
}
while((arr[j] < target) && (i < j)) {
i++;
}
if(i < j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
//将基准数,放到数组中间
arr[start] = a[i];
arr[i] = temp;
//递归将数组左右两边排好序
arr = qsort(arr, start, i - 1);
arr = qsort(arr,j