본문 바로가기
TIL(Today I Learned)

[TIL] 2023.2.28

by Cafe Mocha 2023. 2. 28.

저번주에 1차 면접을 보고 주말 동안 간단히 글램핑을 다녀오면서 쉬다왔다!

그리고 어제 1차면접 합격을 받고 이제 2차면접을 준비하려고 한다.

 

dfs는 꾸준히 풀어나갈 생각이고 2차면접은 라이브 코딩으로 정렬, 탐색 등 알고리즘의 시간복잡도와 구현 등을 준비해볼 생각이다.

 

1차면접에서도 자료구조, 정렬에 대해 라이브코딩을하고 시간복잡도에 대해 설명했는데 아쉬운 점이 있었다.

오늘은 정렬 부분을 공부하고, 직접 구현하면서 익숙해지는 연습을 했다.

 

잘 준비해서 꼭 좋은 결과로 만들자!!

 

function selectionSort(arr) {
  for (let i = 0; i < len; i++) {
    let min_index = i;
    for (let j = i + 1; j < len; j++) {
      if (arr[min_index] > arr[j]) {
        min_index = j;
      }
    }
    [arr[i], arr[min_index]] = [arr[min_index], arr[i]];
  }

  console.log(arr);
}



function insertionSort(arr) {
  for (let i = 1; i < len; i++) {
    for (let j = i; j > 0; j--) {
      if (arr[j] < arr[j - 1]) {
        [arr[j], arr[j - 1]] = [arr[j - 1], arr[j]];
      } else break;
    }
  }
  console.log(arr);
}



const quickSort = (arr) => {
  if (arr.length <= 1) return arr;

  const pivot = arr[0];
  const left = [];
  const right = [];

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

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



function countingSort(arr) {
  let count = new Array(10).fill(0);
  let result = [];
  for (let i = 0; i < len; i++) {
    count[arr[i]]++;
  }
  for (let i = 0; i <= 9; i++) {
    for (let j = 0; j < count[i]; j++) {
      result.push(i);
    }
  }

  console.log(result);
  return result;
}



function ExquickSort(arr) {
  console.log(arr);
  quickSort(arr, 0, len - 1);
  console.log(arr);
}

'TIL(Today I Learned)' 카테고리의 다른 글

[TIL] 2023.3.6 ~ 3.10  (0) 2023.03.06
[TIL] 2023.3.2  (1) 2023.03.02
[TIL] 2023.2.24  (0) 2023.02.24
[TIL] 2023.2.23  (1) 2023.02.23
[TIL] 2023.2.17  (0) 2023.02.17