ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바스크립트로 퀵 정렬 구현하기
    2018~2019/알고리즘 2018. 12. 31. 01:17

    1. pivot값이 처음 값인 경우


    let arr = [1,4,5,2,3,6];


    function Quick(arr) {

      

      const len = arr.length;

      

      if(len == 0)

        return [];

      

      let left = [];

      let right = [];

      const pivot = arr[0];

      

      for(let i=1; i<len; i++) {

        if(arr[i] < pivot)

          left.push(arr[i]);

        else

          right.push(arr[i]);

      }


      return Quick(left).concat(pivot, Quick(right));

    }


    console.log(Quick(arr));


    2. pivot값이 중간 값인 경우


    let arr = [1,4,5,2,3,6];


    function Quick(arr) {

      

      const len = arr.length;

      

      if(len == 0)

        return [];

      

      let left = [];

      let right = [];

      const tmp = arr[0];

      arr[0] = arr[parseInt(len/2)];

      arr[parseInt(len/2)] = tmp;

      

      const pivot = arr[0];

      

      for(let i=1; i<len; i++) {

        if(arr[i] < pivot)

          left.push(arr[i]);

        else

          right.push(arr[i]);

      }


      return Quick(left).concat(pivot, Quick(right));

    }


    console.log(Quick(arr));

    '2018~2019 > 알고리즘' 카테고리의 다른 글

    에라토스테네스의 체  (0) 2018.09.28
Designed by Tistory.