快速排序
冒牌排序前面以及写过了,快速排序是在冒泡上的一个改进,它需要一个**准基数**,从需要排序的数里面随便找出一个,
然后,把比这个数小的放在这个数左边,比这个数大的放在这个数右边,一样大的和这个数放在一起,最后,左右两边各
自重复上述过程,直到左边或右边只剩下一个数(或零个数)无法继续为止。其实就是一个递归调用
代码实现
package week10;
public class QuickSort {
public static void quickSort(int[] arr, int low, int high) {
int i, j, temp, t;
if (low > high) {
return;
}
i = low;
j = high;
temp = arr[low];
while (i < j) {
while (temp <= arr[j] && i < j) {
j--;
}
while (temp >= arr[i] && i < j) {
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] = temp;
quickSort(arr, low, j - 1);
quickSort(arr, j + 1, high);
}
public static void main(String[] args) {
int[] arr = { 10, 7, 2, 4, 7, 62, 3, 4, 2, 1, 8, 9, 19 };
quickSort(arr, 0, arr.length - 1);
for (int i : arr) {
System.out.print(i+" ");
}
}
}