English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 가이드

Java 흐름 제어

Java 배열

Java 객체지향(I)

Java 객체지향(II)

Java 객체지향(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 집합

Java Set 집합

Java 입력 출력(I/O)

Java Reader/Writer

Java 다른 주제

Java 프로그램에서 빠른 정렬 알고리즘 구현

Java 예제 전체

이 예제에서는 Java에서 빠른 정렬 알고리즘을 구현하는 방법을 배웁니다.

Java의 빠른 정렬 알고리즘을 배우기 전에, 빠른 정렬 알고리즘의 작동 원리를 이해해야 합니다.

예제:Java에서 빠른 정렬 알고리즘을 구현하는 프로그램

//Java에서의 빠른 정렬
import java.util.Arrays;
class Main {
  //데이터 축에 따라 배열을 분할합니다
  int partition(int array[], int low, int high) {
    //마지막 요소를 축으로 선택합니다
    int pivot = array[high];
    //두 번째 포인터를 초기화합니다
    int i = (low - 1);
    //축보다 작은 요소를 왼쪽에 두습니다
    //축의 우측에 있는 더 큰 축
    for (int j = low; j < high; j++) {
       //모든 요소를 pivot과 비교합니다
       //pivot보다 큰 요소를 교환합니다
       //요소가 pivot보다 작습니다
       //내림차순으로 정렬합니다
      // if (array[j] >= pivot)
      if (array[j] <= pivot) {
        //두 번째 포인터를 증가시킵니다。
        //더 큰 요소를 작은 요소로 대체합니다
        i++;
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
      }
    }
        //그래서 왼쪽의 요소가 더 작습니다
        //pivot보다 왼쪽의 요소가 큽니다
    int temp = array[i + 1];
    array[i + 1] = array[high];
    array[high] = temp;
    return (i + 1);
  }
  void quickSort(int array[], int low, int high) {
    if (low < high) {
       //축 위치를 선택하고 모든 요소를 작게 놓습니다
       //좌轴은 축보다 크고, 우轴은 축보다 큽니다
      int pi = partition(array, low, high);
      //轴左侧의 요소를 정렬합니다
      quickSort(array, low, pi - 1);
      //轴右侧의 요소를 정렬합니다
      quickSort(array, pi + 1, high);
    }
  }
  public static void main(String args[]) {
    //정렬되지 않은 배열을 생성합니다
    int[] data = { 8, 7, 2, 1, 0, 9, 6 };
    int size = data.length;
    //Main 클래스의 객체를 생성합니다
    Main qs = new Main();
    //첫 번째와 마지막 인덱스를 배열에 전달합니다
    qs.quickSort(data, 0, size - 1);
    System.out.println("정렬된 배열: ");
    System.out.println(Arrays.toString(data));
  }
}

출력1

정렬되지 않은 배열:
[8, 7, 2, 1, 0, 9, 6]
정렬된 배열:
[0, 1, 2, 6, 7, 8, 9]

여기서, 배열의 요소는 오름차순으로 정렬됩니다. 요소를 내림차순으로 정렬하려면 Partition() 메서드의 for 루프에서 코드를 변경할 수 있습니다:

//소문자 더하기 변경
if (array[j] >= pivot) {

  Java 예제 전체