JavaScript

bubblesort 강의 정리

연93 2022. 8. 16. 18:23
<body>

    <script>
    (()=>{
        const bubbleSort = function(asc, ...ar)
        {
            let arr;
            let temp;

            // 한줄을 비교할때마다 스왑이 된지 파악한다.
            let swapFlag = false;

            if (typeof(ar[0]) === 'number')
            {
                arr = ar;
            }
            else if (Array.isArray(ar[0]))
            {
                arr = ar[0];
            }
            else
            {
                return null;
            }

            for (let i = 0; i < arr.length - 1; i++)
            {
                
                for (let k = 0; k < arr.length - 1 - i; k++)
                {
                    // 오름차순
                    if (asc === true)
                    {
                        if (arr[k] > arr[k + 1])
                        {
                            temp = arr[k];
                            arr[k] = arr[k + 1];
                            arr[k + 1] = temp;                           

                            swapFlag = true;

                        }


                    }
                    else // 내림차순.
                    {
                        if (arr[k] < arr[k + 1])
                        {
                            temp = arr[k];
                            arr[k] = arr[k + 1];
                            arr[k + 1] = temp;                           

                            swapFlag = true;
                            
                        }


                    }



                }

                if (swapFlag === false)
                {
                    console.log("break " + i);
                    break;
                }
                else
                {
                    swapFlag = false;

                }

            }

            return arr;

        }
            
        let res = bubbleSort(true, 1, 3, 4, 2, 5);

        console.log(res);



    })();
    </script>
    
</body>

'JavaScript' 카테고리의 다른 글

dom 강의2  (0) 2022.08.18
dom 강의 정리  (0) 2022.08.17
콜백 함수 정리  (0) 2022.08.14
스코프 강의 내용 22.08.11  (0) 2022.08.11
JS강의 로또만들기 22.08.10  (0) 2022.08.10