📅  最后修改于: 2023-12-03 14:58:22.992000             🧑  作者: Mango
本题要求我们实现一个Java程序,该程序可以对一个由整数组成的数组进行排序,并返回排序后的数组。我们可以使用任何已经实现的排序算法来解决此问题。
我们可以使用Quick Sort、Merge Sort、Bubble Sort、Insertion Sort、Selection Sort等算法对数组进行排序。
以Quick Sort算法为例:
以下是使用Quick Sort算法实现的代码片段:
public class QuickSort {
public static void sort(int[] arr, int left, int right) {
if (left < right) {
int pivot_index = partition(arr, left, right);
sort(arr, left, pivot_index-1);
sort(arr, pivot_index+1, right);
}
}
public static int partition(int[] arr, int left, int right) {
int pivot = arr[left];
int i = left + 1;
int j = right;
while (true) {
while (i < j && arr[i] < pivot) i++;
while (i < j && arr[j] > pivot) j--;
if (i >= j) break;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++; j--;
}
if (pivot > arr[i]) {
arr[left] = arr[i];
arr[i] = pivot;
return i;
} else {
return left;
}
}
}
我们可以使用以下代码片段进行测试:
public class Main {
public static void main(String[] args) {
int[] arr = new int[]{ 5, 2, 9, 1, 5, 6 };
QuickSort.sort(arr, 0, arr.length-1);
System.out.println(Arrays.toString(arr));
}
}
输出结果为:
[1, 2, 5, 5, 6, 9]