优化这段代码public class QuickSort implements IArraySort { @Override public int[] sort(int[] sourceArray) throws Exception { // 对 arr 进行拷贝,不改变参数内容 int[] arr = Arrays.copyOf(sourceArray, sourceArray.length); return quickSort(arr, 0, arr.length - 1); } private int[] quickSort(int[] arr, int left, int right) { if (left < right) { int partitionIndex = partition(arr, left, right); quickSort(arr, left, partitionIndex - 1); quickSort(arr, partitionIndex + 1, right); } return arr; } private int partition(int[] arr, int left, int right) { // 设定基准值(pivot) int pivot = left; int index = pivot + 1; for (int i = index; i <= right; i++) { if (arr[i] < arr[pivot]) { swap(arr, i, index); index++; } } swap(arr, pivot, index - 1); return index - 1; } private void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } }
时间: 2023-05-12 10:04:37 浏览: 81
对int array进行排序的实例讲解
这段代码是快速排序的实现,可以对一个整型数组进行排序。在排序过程中,先选取一个基准值,然后将数组中小于基准值的元素放在基准值的左边,大于基准值的元素放在基准值的右边,最后递归地对左右两个子数组进行排序。这个实现中使用了递归算法,可以对较大的数组进行排序。如果数组长度较小,可以考虑使用插入排序等其他算法。
阅读全文