선택 정렬

선택 정렬에 대해 무엇을 이해하고 있습니까?
  • 개념만 이해하면 매우 간단합니다.
  • 새 배열을 반환하지 않고 원래 배열을 변경합니다
  • .
  • 버블 정렬
  • 과 유사함
  • 둘 다 2개의 for 루프를 사용하고 동일한 표준 교환 로직도 수행합니다.
  • 외부 루프는 "가장 작은"비교 값의 인덱스 포인터를 보유합니다
  • .
  • 내부 루프가 현재 "가장 작은"포인터 값보다 작은 값을 검색합니다
  • .

  • 새로운 최소값 인덱스 가져오기
  • 현재 "가장 작은"포인터 값과 새로운 가장 작은 값의 인덱스로 외부 루프에서 교체합니다.
  • 시간 복잡도:
  • 최고 : O(n^2)
  • 평균: O(n^2)
  • 최악 : O(n^2)

  • 공간 복잡성:
  • 오(1)


  •     function SelectionSort(arr) {
            const arrayLength = arr.length;
    
            for (let i = 0; i < arrayLength - 1; i++) {
                let smallestIndexPointer = i;
                for (let j = i + 1; j < arrayLength; j++) {
                    if (arr[j] < arr[smallestIndexPointer]>) {
                        smallestIndexPointer = j;
                    }
                }
                if (smallestIndexPointer !== i) {
                    [arr[i], arr[smallestIndexPointer]] = [arr[smallestIndexPointer], arr[i]];
                }
            }
    
            return arr;
        }
    

    좋은 웹페이지 즐겨찾기