算法实现挑战:Java实现快速排序算法示例
快速排序是一种高效的排序算法,其基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字要小,然后分别对这两部分记录继续进行排序,以达到整个序列有序的要求。
以下是Java实现快速排序算法的示例代码:
public class QuickSort {
// 定义一个交换两个元素的方法
private void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
// 快速排序的主方法
public void quickSort(int[] arr, int low, int high) {
if (low < high) { // 当前区间非空,进行分区操作
int pivotIndex = partition(arr, low, high); // 获取枢轴元素的索引
// 对枢轴左侧和右侧的区间递归调用快速排序方法
quickSort(arr, low, pivotIndex - 1);
quickSort(arr, pivotIndex + 1, high);
}
}
// 分区操作,返回枢轴元素的索引
private int partition(int[] arr, int low, int high) {
// 选择数组最后一个元素作为枢轴元素
int pivot = arr[high];
// 初始化基准值为第一个元素
int i = (low - 1);
// 遍历数组,将小于等于枢轴的元素向左移动
for (; i < high; i++) {
if (arr[i] <= pivot) { // 如果当前元素小于等于枢轴
swap(arr, i, (i + 1))); // 将当前元素与它后的一个元素交换位置
i++; // 基准值向右移动一位,表示已经处理过的元素
}
}
// 返回基准值(即枢轴元素)的索引
return (i + 1));
}
// 测试快速排序方法
public static void main(String[] args) {
int[] arr = {5, 3, 9, 1, 7};
QuickSort quickSort = new QuickSort();
quickSort.quickSort(arr, 0, arr.length - 1);
// 打印排序后的数组
for (int i : arr) {
System.out.print(i + " "));
}
}
}
这段代码首先定义了快速排序的类,然后在main方法中创建了一个示例数组并调用快速排序方法进行排序。最后打印出排序后的结果。
还没有评论,来说两句吧...