Java Quick Sort의 원리와 구현에 대한 자세한 설명
Quick Sort는 일반적으로 사용되는 정렬 알고리즘으로 구현이 간단하고 효율적이며 고전적인 재귀 알고리즘 중 하나입니다. 이 기사에서는 빠른 정렬의 원리와 구현을 자세히 소개하고 구체적인 Java 코드 예제를 제공합니다.
빠른 정렬의 일반적인 단계는 다음과 같습니다.
(1) 벤치마크 요소를 선택하고 시퀀스를 두 부분으로 나누어 왼쪽의 요소는 벤치마크보다 작거나 같고, 왼쪽의 요소는 벤치마크보다 작습니다. 오른쪽은 둘 다 벤치마크보다 크거나 같습니다.
(2) 왼쪽 요소와 오른쪽 요소를 재귀적으로 쌍으로 두 부분을 빠르게 정렬합니다.
public class QuickSort { public static void quickSort(int[] arr, int low, int high) { if (low < high) { int partitionIndex = partition(arr, low, high); quickSort(arr, low, partitionIndex - 1); quickSort(arr, partitionIndex + 1, high); } } private static int partition(int[] arr, int low, int high) { int pivot = arr[high]; int i = low - 1; for (int j = low; j < high; j++) { if (arr[j] < pivot) { i++; swap(arr, i, j); } } swap(arr, i + 1, high); return i + 1; } private static 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 = {9, 2, 4, 7, 1, 5, 3, 8, 6}; System.out.println("Before sorting:"); for (int num : arr) { System.out.print(num + " "); } quickSort(arr, 0, arr.length - 1); System.out.println(" After sorting:"); for (int num : arr) { System.out.print(num + " "); } } }
위 코드에서는 정수 배열을 허용하는 정적 메서드 quickSort
를 정의합니다. 그리고 끝 인덱스를 매개변수로 사용합니다. quickSort
메소드에서는 먼저 시작 인덱스가 종료 인덱스보다 작은지 확인합니다. 조건이 충족되면 partition
메소드를 통해 기본 요소가 선택되고 분할됩니다. partition
메소드에서는 마지막 요소를 기본 요소로 사용하고, 시작 인덱스와 끝 인덱스 사이의 요소를 순회하며, 기본 요소보다 작은 요소를 기본 요소보다 큰 요소로 교환합니다. 마지막으로 기본 요소를 최종 위치로 바꾸고 해당 위치를 반환합니다. quickSort
,它接受一个整型数组、起始和结束索引作为参数。quickSort
方法中,首先判断起始索引是否小于结束索引,如果满足条件,则选取基准元素,并通过partition
方法进行分区操作。partition
方法中,我们以最后一个元素作为基准元素,遍历起始索引到结束索引之间的元素,将小于基准元素的元素与大于基准元素的元素进行交换。最后,交换基准元素到最终位置,返回该位置。
在main
方法中,我们创建一个整型数组并初始化。然后,调用quickSort
main
메소드에서는 정수 배열을 생성하고 초기화합니다. 그런 다음 quickSort
메서드를 호출하여 배열을 정렬하고 정렬 전후의 결과를 출력합니다.
요약:
위 내용은 Java 퀵 정렬 알고리즘의 원리와 구현 단계에 대한 심도 있는 논의의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!