\(@^0^@)/

[TDL] 07/16 Today's-Done-List 본문

TDL

[TDL] 07/16 Today's-Done-List

minjuuu 2022. 7. 17. 13:16
728x90

- 제로베이스 알고리즘 정렬

퀵 정렬 (Quick Sort)

- 특정한 값을 기준으로 큰 숫자와 작은 숫자를 분할하여 정렬하는 알고리즘
- 평균 시간 복잡도 : O(n log n)
- 분할 -> 부분 배열 정렬 -> 전체 정렬

위의 알고리즘 동작 방식은 가장 이해하기 쉽고 심플한 Qsort이다.

function swap(arr, idx1, idx2) {
  let temp = arr[idx1];
  arr[idx1] = arr[idx2];
  arr[idx2] = temp;
}

function quickSort(arr, s = 0, e = arr.length - 1) {
  let start = s;
  let pivot = arr[e];

  for (let i = s; i <= e; i++) {
    if (pivot > arr[i]) {
      swap(arr, start, i);
      start++;
    }
  }
  swap(arr, start, e);

  if (start - 1 > s) quickSort(arr, s, start - 1);
  if (start + 1 < e) quickSort(arr, start + 1, e);

  return arr;
}

quickSort([3, 6, 8, 1, 12, 5]);   // [1, 3, 5, 6, 8, 12]

- web tech camp 백엔드 기초 강의

라이브 강의보다 편집된 강의를 듣거나 다른 강의를 듣는 것이 날 것 같다 생각해서 담주부터는 아마 결제해놓은 노드 버드 강의를 들을 것 같다.


 

728x90

'TDL' 카테고리의 다른 글

[TDL] 07/18 Today's-Done-List  (0) 2022.07.18
[TDL] 07/17 Today's-Done-List  (0) 2022.07.17
[TDL] 07/15 Today's-Done-List  (0) 2022.07.15
[TDL] 07/13 Today's-Done-List  (0) 2022.07.13
[TDL] 07/12 Today's-Done-List  (0) 2022.07.13