Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

JS Dev Blog

Quick Sort 본문

Development/Algorithm

Quick Sort

chacot 2022. 4. 21. 00:26

pviot(중심축)을 정하고 중심축 보다 작은 값들은 왼쪽으로, 큰 값들은 오른쪽으로 보낸다. 이렇게 재귀적으로 pivot을 정해서 왼쪽 오른쪽을 나눠서 부분 리스트의 합이 전체 리스트가 되게 하는 방법이다.

Divde and Conquer 알고리즘에 속한다.

 

big O

O(nlogn)

 

 

const quickSort = function (arr, transform =(item)=> item) {
  // TODO: 여기에 코드를 작성합니다.
  if(arr.length<2){
    return arr;
  }

  let pivot = arr[0];
  let left = [];
  let right = [];
  for(let i=1; i<arr.length; i++){
    if(transform(arr[i])<transform(pivot)){
      left.push(arr[i])
    }
    else{
      right.push(arr[i])
    }

  }
  const lSorted = quickSort(left, transform);
  const rSorted = quickSort(right, transform);
  return [...lSorted, pivot, ...rSorted];
  
  
};

'Development > Algorithm' 카테고리의 다른 글

프로그래머스 - N으로 표현  (0) 2022.05.26
삽입 정렬(Insertion Sort)  (0) 2022.04.15
Graph Search BFS / DFS  (0) 2022.04.07