sort() 메서드를 사용하지 않고 Java에서 배열 정렬

Haider Ali 2023년10월12일
  1. sort() 메소드를 사용하지 않고 Java에서 배열 정렬 - 버블 정렬
  2. sort() 메소드를 사용하지 않고 Java에서 배열 정렬 - 선택 정렬
  3. sort() 메소드를 사용하지 않고 Java에서 배열 정렬 - 삽입 정렬
sort() 메서드를 사용하지 않고 Java에서 배열 정렬

이 가이드는 sort() 메소드를 사용하지 않고 Java에서 배열을 정렬하는 방법을 알려줍니다. 일반적으로 배열을 정렬하는 세 가지 방법이 있습니다. 이 세 가지 알고리즘은 모든 배열을 정렬하는 데 매우 효율적입니다. 이러한 알고리즘에 대해 자세히 알아보겠습니다.

sort() 메소드를 사용하지 않고 Java에서 배열 정렬 - 버블 정렬

가장 간단한 정렬 알고리즘인 버블 정렬의 개념을 이해합시다. 기본적으로 이 알고리즘에서는 배열의 인접한 요소를 반복적으로 교체합니다. 순서가 잘못된 경우 알고리즘은 두 요소를 교환합니다. 프레젠테이션을 살펴보십시오.

sort() 메서드를 사용하지 않고 Java에서 배열 정렬 - 버블 정렬

위에 제공된 그림을 보면 인접한 두 요소가 서로 바뀌는 것을 볼 수 있습니다. 결국 정렬된 배열이 있습니다. 헷갈리는 부분이 있다면 이 버블 정렬 알고리즘의 코드를 살펴보세요.

public class Main {
  public static void main(String[] args) {
    int[] arr = new int[] {5, 4, 3, 8, 32, 768, 564, 95, 172, 1500, 859, 754};
    // Example Array To sort...
    for (int i = 0; i < arr.length; i++) { // Loop over java Array  outer Loop use
      for (int j = i + 1; j < arr.length; j++) { // Loop over java array
        int tmp = 0; // tempraory variable in order to compare.
        if (arr[i] > arr[j]) { // compare outer loop object with inner loop
          tmp = arr[i]; // if greater than swapping.
          arr[i] = arr[j]; // Swaping code here.
          arr[j] = tmp;
        }
      }
    }
    // After Sorting Printing The Value.............

    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
}

출력:

3
4
5
8
32
95
172
564
754
768
859
1500

외부 루프는 배열을 통과하기 위한 것이며 내부 루프는 각 패스에서 순서가 지정되지 않은 인접한 요소를 교환합니다. 마지막 패스가 끝나면 정렬된 배열이 남습니다.

sort() 메소드를 사용하지 않고 Java에서 배열 정렬 - 선택 정렬

선택 정렬 알고리즘은 배열에서 최소 요소를 검색하고 해당 배열의 시작 부분에 배치하여 작동합니다. 각 패스에서 다음으로 가장 작은 요소를 찾아 다음에 배치합니다. 결국 두 개의 하위 배열이 있는 배열을 얻습니다. 하나의 하위 배열은 배열의 시작 부분에 있는 정렬된 배열입니다. 다른 하위 배열은 정렬되지 않은 하위 배열입니다.

각 패스에서 오름차순으로 이동합니다. 가장 큰 요소를 먼저 찾으면 내림차순으로 이동합니다. 아래 그림을 살펴보십시오.

sort() 메서드를 사용하지 않고 Java에서 배열 정렬 - 선택 정렬

위의 그림에서 움직임은 내림차순이며 가장 큰 요소를 먼저 찾아 끝에 배치합니다. 프레젠테이션은 위에서 설명한 것처럼 어레이가 두 개의 하위 어레이로 분할된 것을 보여줍니다.

public class Main {
  public static void main(String[] args) {
    int[] arr1 = new int[] {5, 4, 3, 8, 32, 768, 564, 95, 172, 1500, 859, 754};
    int small = -1; // at start there is no small  number....
    for (int i = 0; i < arr1.length; i++) {
      small = i;
      for (int j = i; j <= arr1.length - 1; j++) {
        if (arr1[j] < arr1[small]) {
          small = j;
        }
        // swap values
      }
      int temp = arr1[i];
      arr1[i] = arr1[small];
      arr1[small] = temp;
    }

    for (int i = 0; i < arr1.length; i++) {
      System.out.println(arr1[i]);
    }
  }
}

위의 코드 예제에서 외부 루프는 배열을 전달하는 역할을 합니다. 내부 루프는 가장 작은 요소를 현재 인덱스의 요소와 교환합니다.

sort() 메소드를 사용하지 않고 Java에서 배열 정렬 - 삽입 정렬

삽입 정렬은 배열을 정렬하는 데 사용할 수 있는 또 다른 간단한 정렬 알고리즘입니다. 이 알고리즘에서 주어진 배열도 두 개의 하위 배열로 나뉩니다. 그러나 선택 정렬과 달리 요소는 정렬되지 않은 하위 배열에서 선택되어 올바른 위치에 배치됩니다. 아래의 그림 설명을 살펴보십시오.

sort() 메서드를 사용하지 않고 Java에서 배열 정렬 - 삽입 정렬

보시다시피, 인접한 요소 간에 교환되지 않습니다. 가장 작은 요소를 찾아 올바른 위치에 배치하기만 하면 됩니다. 우리는 첫 번째 요소부터 반복하고 끝을 향해 나아갑니다. 요소는 이전 요소와 비교된 다음 올바른 위치를 찾을 때까지 옆에 있는 요소와 비교됩니다. 제공된 예에서 2가 올바른 위치에 배치되기 전에 4번 비교되었음을 알 수 있습니다. 다음은 코드 예제입니다.

public class Main {
  public static void main(String[] args) { // Insertion Sort....
    int[] arr2 = new int[] {5, 4, 3, 8, 32, 768, 564, 95, 172, 1500, 859, 754};
    int number = arr2.length;
    for (int a = 1; a < number; a++) {
      int keyValue = arr2[a];
      int b = a - 1;
      while (b >= 0 && arr2[b] > keyValue) {
        arr2[b + 1] = arr2[b];
        b = b - 1;
      }
      arr2[b + 1] = keyValue;
    }
    // printing inserion sort............................
    for (int i = 0; i < arr2.length; i++) {
      System.out.println(arr2[i]);
    }
  }
}

다음은 정렬 기능을 사용하지 않고 Java에서 배열을 정렬하는 데 사용할 수 있는 세 가지 방법입니다.

작가: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

관련 문장 - Java Sort

관련 문장 - Java Array