JS 노트(quickSort() 만들기)+삼항연산자 사용

주재일·2021년 5월 17일
0

JS

목록 보기
29/33
function quickSort(arr){
  if(arr.length <= 1){
    return arr;
  }
  const pivot = arr[0];
  const left = [];
  const right = [];

  for(let i=1; i<arr.length; i++){
    arr[i]<pivot ? left.push(arr[i]) : right.push(arr[i])
        
  }
  return quickSort(left).concat(pivot, quickSort(right));
}


const array = [1, 3, 2, 7, 5, 6, 4, 8, 9, 10];
console.log(array);
console.log(quickSort(array));

음.. quickSort()란 밑에 링크에 달아놨습니다.

코드는 음 이번에 전에 mergeSort() 합병정렬때는 중간에 if문을 사용했는데

지금은 삼항연산자를 써봤어요 ㅎㅎㅎㅎㅎㅎ
마찬가지로 재귀함수로
return 까지 루프를 돌려주고
pivot 변수로 기준점을 정해주고, 문제에서는 0번째라서 0으로 했습니다.

left와 right를 빈 배열로 선언해주고,

for문으로 돌려주시면 됩니다.

마지막으로 핵심 point

return quickSort(left)에 concat()을 했는데요
concat을 안하고 그냥 right 해버리면 그냥 12345678910이 되어버려요

그래서 concat은 배열로 붙여주는 함수로 쓰인다더군요

concat으로 붙여주니 배열로

출력 값:

(10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
0: 1
1: 2
2: 3
3: 4
4: 5
5: 6
6: 7
7: 8
8: 9
9: 10

이 나왔습니다.

참고사이트
https://gmlwjd9405.github.io/2018/05/10/algorithm-quick-sort.html

profile
늦게 시작했으니 저는 늦둥이인가요?

0개의 댓글

관련 채용 정보