以下是Java中的快速排序代码:

public class QuickSort {
	
	public void sort(int[] arr, int left, int right) {
		if(left < right) {
			int pivotIndex = partition(arr, left, right);
			sort(arr, left, pivotIndex - 1);
			sort(arr, pivotIndex + 1, right);
		}
	}
	
	private int partition(int[] arr, int left, int right) {
		int pivot = arr[right];
		int i = left - 1;
		for(int j = left; j < right; j++) {
			if(arr[j] <= pivot) {
				i++;
				swap(arr, i, j);
			}
		}
		swap(arr, i + 1, right);
		return i + 1;
	}
	
	private void swap(int[] arr, int i, int j) {
		int temp = arr[i];
		arr[i] = arr[j];
		arr[j] = temp;
	}
	
	public static void main(String[] args) {
		int[] arr = {5, 3, 8, 4, 2, 7, 1, 10};
		QuickSort qs = new QuickSort();
		qs.sort(arr, 0, arr.length - 1);
		System.out.println(Arrays.toString(arr));
	}

}

在快速排序中,选择一个元素作为基准点,将小于基准点的元素放在左边,大于基准点的元素放在右边,然后对左右两部分分别进行递归排序,最终得到有序的结果。在上面的代码中,partition方法选择最右边的元素作为基准点,通过两个指针i和j来分别从左到右和从右到左遍历数组,将小于基准点的元素和大于基准点的元素交换位置,最终返回基准点的位置。在sort方法中,递归调用partition方法,将数组分成左右两部分,然后对左右两部分分别进行递归排序。

请给出一段java的快速排序代码

原文地址: https://www.cveoy.top/t/topic/bWlk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录