TOP 25 알고리즘 | Quick Sort

발행: (2026년 4월 9일 AM 12:10 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

요약

분할 정복을 기반으로 하는 정렬 알고리즘으로, 피벗으로 사용할 요소를 선택하고 제공된 배열을 선택된 피벗을 중심으로 분할하여 피벗을 정렬된 배열에서 올바른 위치에 배치합니다.

코드

function partition(arr, low, high){
  // Escolha o pivô
  let pivot = arr[high];

  // Índice do menor elemento e indica a posição correta do pivô encontrada até agora
  let i = low - 1;

  // Percorre arr[low..high] e move todos os elementos menores para o lado esquerdo.
  // Elementos de low para i são menores após cada iteração
  for (let j = low; j <= high - 1; j++) {
      if (arr[j] < pivot) {
          i++;
          swap(arr, i, j);
      }
  }

  // Move o pivô após elementos menores e retorna sua posição
  swap(arr, i + 1, high);
  return i + 1;
}

function swap(arr, i, j){
  let temp = arr[i];
  arr[i] = arr[j];
  arr[j] = temp;
}

시간 복잡도

(정보 제공되지 않음)

공간 복잡도

(정보 제공되지 않음)

장점

(정보 제공되지 않음)

단점

  • 안정적이지 않음.
0 조회
Back to Blog

관련 글

더 보기 »

생성자란 무엇인가?

소개 JavaScript에서 constructor는 객체를 생성하고 초기화하는 특수한 function 또는 method입니다. 유사한 ...

JS에서 배열 평탄화 마스터

배열 메서드에 대한 블로그를 쓰는 중에 중첩 배열을 처리하기 위한 Array.flat 메서드를 발견했습니다. ES6 이전에는 배열을 평탄화하는 것이 그리 간단하지 않았습니다 an...