삽입 정렬

삽입 정렬에 대해 무엇을 이해합니까?
  • 2개의 루프(외부 for 루프 및 내부 while 루프)와 2개의 포인터를 사용합니다
  • .
  • 첫 번째 포인터는 두 번째 포인터 이후 1개 항목부터 시작합니다
  • .
  • 두 번째 포인터는 첫 번째 포인터 앞의 1개 항목에서 시작합니다
  • .
  • 2번째 루프가 0까지 점진적으로 반복됩니다
  • .
  • 현재 값이 왼쪽 값보다 크면 왼쪽을 현재 값
  • 에 복사합니다.
  • 두 번째 루프가 완료된 후 삽입이 발생함
  • 원본 어레이에서 돌연변이가 수행됨
  • 시간 복잡도
  • 최상 -> O(n)
  • 평균 -> O(n^2)
  • 최악 -> O(n^2)

  • 공간 복잡성
  • 오(1)


  •     function InsertionSort(arr) {
            for (let i = 1; i < arr.length ; i++) {
                let currentValue = arr[i];
                let oneIndexBefore = i - 1;
                while (oneIndexBefore >= 0 && arr[oneIndexBefore] > currentValue) {
                    arr[oneIndexBefore + 1] = arr[oneIndexBefore];
                    oneIndexBefore--;
                }
                arr[oneIndexBefore + 1] = currentValue;
            }
            return arr;
        }
    

    좋은 웹페이지 즐겨찾기