[c] 배열과 정렬 알고리즘

이 블로그 포스트에서는 배열(array)과 정렬 알고리즘에 대해 알아보겠습니다. 먼저 배열을 소개하고, 다양한 정렬 알고리즘에 대해 설명하겠습니다. 각각의 정렬 알고리즘은 어떤 상황에서 어떻게 사용되는지에 대해 알아봅니다.

배열

배열은 같은 유형의 데이터를 순차적으로 저장하는 자료 구조입니다. 주어진 인덱스를 사용하여 특정 위치의 데이터에 접근할 수 있습니다. 배열의 크기는 고정되어 있으며, 이러한 특성 때문에 데이터의 삽입이나 삭제에 제약이 있을 수 있습니다.

자바스크립트에서 배열을 선언하고 초기화하는 예시를 살펴봅시다.

let numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];

정렬 알고리즘

버블 정렬 (Bubble Sort)

버블 정렬은 서로 인접한 두 원소를 비교하여 조건에 맞지 않다면 위치를 교환하는 방식으로 정렬합니다. 이 과정을 반복하여 가장 큰(또는 작은) 원소를 배열의 마지막(또는 처음)으로 이동시킵니다. 시간 복잡도는 O(n^2)이며, 작은 규모의 데이터에 적합합니다.

코드

function bubbleSort(arr) {
  let len = arr.length;
  for (let i = 0; i < len; i++) {
    for (let j = 0; j < len - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        let temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }
  return arr;
}

더 많은 정렬 알고리즘과 코드 예시를 다룬 글을 읽어보면 도움이 될 것입니다. 관심이 있는 분들께서는 아래의 참고 자료를 참조해 보세요.

참고 자료