• 티스토리 홈
  • 프로필사진
    alpha brain
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
alpha brain
  • 프로필사진
    alpha brain
    • 분류 전체보기 (93)
      • SOFTWARE DEVELOP (68)
        • REACT.JS (3)
        • WEBPACK (4)
        • HTML&CSS (2)
        • EXPRESS (0)
        • DATABASE (0)
        • NODE.JS (3)
        • JAVASCRIPT (24)
        • DOCKER (1)
        • Linux (3)
        • Git (6)
        • GRAPHQL (0)
        • Datastructure (7)
        • Development (6)
        • HTTP (1)
        • Programming Paradigm (1)
        • Algorithm log (5)
        • DEV log (1)
        • Project log (0)
        • I don't know yet (1)
      • 경제, 재무 (23)
      • 여행 (0)
      • 시사, 상식 (2)
  • 반응형
    250x250
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [Algorithm log] SelectionSort
        2020년 06월 12일
        • alpha brain
        • 작성자
        • 2020.06.12.:22
        728x90
        반응형

        selectionSort는 말 그대로 선택해서 정렬한다.

        작은 것을 찾아서 앞으로 보낸다. 이것이 전부다.


        이 걸 또 정렬될 때까지 계속하는 거다.


        새로운 배열을 만들어 가장 작은 값을 하나씩 넣어서 줄 수 도 있겠고, 원본 배열을 변경해서 하는 방법이 있을 수도 있겠다.

        나는 원본 배열을 변경하는 방식으로 진행을 하려 한다.

        역시 이번에도 반복문을 어떻게 구성해야 할지가 제일 중요하다.

        일단 전체 요소만큼 에 사이클이 나올 것이고, 한 사이클마다 최솟값을 찾아야 한다. 또한 한 사이클을 돌게 되면 맨 앞은 제일 작은 수가 된다.

        code

        function selectionSort(array){
          for(let i=0; i<array.length-1; i++){ // 전체 사이클
            let minIdx = i;
            let temp;
            for(let j=i; j<array.length; j++){ // 한 사이클 
              // 한 사이클 내부에서 최소값의 인덱스를 찾는다.
              if(array[j] < array[minIdx]){
                minIdx = j;
              }
            }
            // 한 사이클이 끝나면 minIdx에는 최소값을 가지는 인덱스가 있다. 
            // 이 것을 가지고 앞에 값이랑 바꿔주면 된다.
            temp = array[minIdx];
            array[minIdx] = array[i];
            array[i] = temp;
          }
          return array;
        }

        이번에도 두 번째 for문이 중요하다. bubbleSort와는 달리 selectionSort는 앞쪽 요소가 채워지기 때문에 초기값이 하나씩 늘어난다.

        bubbleSort와 비교해서 본다면 좋을 것 같다.

        728x90
        반응형

        'SOFTWARE DEVELOP > Algorithm log' 카테고리의 다른 글

        [Algorithm log] MergeSort  (0) 2020.06.15
        [Algorithm log] InsertionSort  (0) 2020.06.12
        [Algorithm log] BubbleSort  (0) 2020.06.12
        [Algorithm log] findShortestOfThreeWords  (0) 2020.01.14
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바