• 티스토리 홈
  • 프로필사진
    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] InsertionSort
        2020년 06월 12일
        • alpha brain
        • 작성자
        • 2020.06.12.:10
        728x90
        반응형

        삽입 정렬은 가장 처음 요소는 정렬이 되어있다고 생각하고

        다음 요소부터 하나씩 비교하면서 정렬하는 방법이다.

        .....

        이걸 또 정렬될 때까지 하면 된다.


        삽입 정렬에서 중요한 것은 위치를 찾아 들어갈 때 요소들을 한 칸씩 뒤로 밀어줘야 한다.  swap의 방식이 아니기 때문이다. 

        그래서 정렬된 요소들에 대해 뒤에서 부터 비교를 해준 후 한 칸씩 당기면서 찾아들어간다.

        반복해서 들어갈 위치를 찾는다.

        전체 사이클은 첫 번째 요소를 제외한(첫 번째 요소는 정렬된요소로 간주하니까!) 전체요소의 길이만큼 돌 것이고 한 사이클당 요소는 앞에 정렬된 요소의 길이만큼 돌아야 할것이다.

        code

        function insertionSort(array){
          for(let i=1; i<array.length; i++){ // 전체 사이클
            let element = array[i];
            for(let j=i-1; j>=0; j--){  // 한 사이클
              // 정렬된 요소가 더 크면 한 칸 뒤로 땡긴다.
              if(array[j] > element){
                array[j+1] = array[j];
              }else{
                // 순서가 맞으면 그냥 끝내면 된다.
                break;
              }
              // 땡겨진 상태이므로 바로 넣어주면 된다.
              array[j] = element;
            }
          }
          return array;
        }

        두 번째 반복문을 보게 되면 for문을 역으로 사용한 것을 볼 수 있다. 뒤에서부터 비교하여 하나씩 당기기 위함이다.

        한 개씩 당겼으니까 바로 넣어주면 된다.

        for문 연습을 잘하자.!!

        728x90
        반응형

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

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

        티스토리툴바