이런저런 IT 이야기

버블 정렬 알고리즘 (Bubble Sort Algorithm) 본문

Algorithm

버블 정렬 알고리즘 (Bubble Sort Algorithm)

이런저런 IT 이야기 2023. 5. 24. 14:25
반응형

버블 정렬(Bubble Sort)은 인접한 두 원소를 비교하고 필요에 따라 교환하는 과정을 반복하여 정렬하는 알고리즘입니다. 가장 간단하고 기본적인 정렬 알고리즘 중 하나입니다.


예시1)

function bubbleSort(arr) {
  const n = arr.length;

  for (let i = 0; i < n - 1; i++) {
    // 한 번의 반복마다 가장 큰 원소가 맨 뒤로 이동됨
    for (let j = 0; j < n - i - 1; j++) {
      // 인접한 두 원소를 비교하여 필요에 따라 교환
      if (arr[j] > arr[j + 1]) {
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
      }
    }
  }

  return arr;
}

// Example usage
const array = [5, 3, 8, 4, 2];
const sortedArray = bubbleSort(array);
console.log(sortedArray); // [2, 3, 4, 5, 8]

위의 코드에서 bubbleSort 함수는 버블 정렬을 수행합니다. 배열의 길이를 나타내는 n 변수를 사용하여 외부 루프를 n-1번 반복하고, 내부 루프를 현재 패스에서 비교해야 할 원소의 개수만큼 반복합니다. 인접한 두 원소를 비교하여 필요에 따라 교환하는 과정을 반복하여 가장 큰 원소가 맨 뒤로 이동합니다. 이렇게 외부 루프와 내부 루프를 반복하면서 배열이 정렬됩니다.


예시2)

function bubbleSort(arr) {
  const n = arr.length;

  for (let i = 0; i < n - 1; i++) {
    for (let j = 0; j < n - i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        // 두 원소를 교환
        const temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }

  return arr;
}

// Example usage
const array = [9, 4, 7, 2, 1, 5];
const sortedArray = bubbleSort(array);
console.log(sortedArray); // [1, 2, 4, 5, 7, 9]

위의 코드에서 bubbleSort 함수는 주어진 배열을 버블 정렬 알고리즘을 사용하여 오름차순으로 정렬합니다. 배열의 길이를 나타내는 n 변수를 사용하여 외부 루프를 n-1번 반복하고, 내부 루프를 현재 패스에서 비교해야 할 원소의 개수만큼 반복합니다. 인접한 두 원소를 비교하여 순서가 잘못된 경우에는 교환합니다. 이렇게 외부 루프와 내부 루프를 반복하면서 배열이 정렬됩니다.

 

버블 정렬은 간단하고 이해하기 쉬운 알고리즘이지만, 최악의 경우 시간 복잡도가 O(n^2)이기 때문에 큰 데이터셋에서는 효율적이지 않을 수 있습니다.

반응형

'Algorithm' 카테고리의 다른 글

Programming Challenges #35  (0) 2023.05.24
선택 정렬 알고리즘 (Selection Sort Algorithm)  (0) 2023.05.24
Programming Challenges #34  (0) 2023.05.24
Programming Challenges #33  (0) 2023.05.24
Programming Challenges #32  (0) 2023.05.24