본문 바로가기

TIL(Today I Learned)

TIL-231006(자료구조 & 알고리즘 4주차)

📝오늘 공부한 것

  • 프로그래머스 문제풀기
  • 스파르타코딩클럽 자료구조 & 알고리즘 4주차 강의 듣기
  • 이력서 수정하기

 

알게 된 점

정렬

데이터를 순서대로 나열하는 방법

 

버블 정렬(Bubblesort)

  • 첫 번째 자료와 두 번째 자료를, 두 번째 자료와 세번째 자료를, 세번째와 네번째를, ... 이런 식으로 (마지막-1)번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬하는 방식이다.
  • 작은 숫자, 큰 숫자 순서로 있으면 내버려두고 큰 숫자, 작은 숫자 순서로 있으면 둘의 위치를 변경하면 된다

선택 정렬(Selectionsort)

선택해서 정렬!!

1단계 : [4, 6, 2, 9, 1] 
        4와 6과 2와 9와 1을 차례차례 비교합니다.
	      그 중 가장 작은 1과 맨 앞 자리인 4를 교체합니다!
       [1, 6, 2, 9, 4] 이렇게요!

자, 그러면 이제 가장 작은 숫자인 1이 맨 앞으로 왔습니다.
가장 작은 걸 가장 맨 앞으로 옮기기로 했으니까요!
그러면, 맨 앞자리를 제외하고 다시 한 번 반복하면 됩니다.

2단계 : [1, 6, 2, 9, 4]
           6과 2와 9와 4를 차례차례 비교합니다.
           그 중 가장 작은 2와 두번째 앞 자리인 6을 교체합니다!
       [1, 2, 6, 9, 4] 이렇게요!

3단계 : [1, 2, 6, 9, 4]
              6과 9와 4를 차례차례 비교합니다.
              그 중 가장 작은 4와 세번째 앞 자리인 6을 교체합니다!
       [1, 2, 4, 9, 6] 이렇게요!

4단계 : [1, 2, 4, 9, 6]
                 9와 6을 비교합니다!
                 그 중 가장 작은 6과 네번째 앞 자리인 9을 교체합니다!
       [1, 2, 4, 6, 9] 이렇게요!

 

삽입 정렬(Insertionsort)

선택 정렬이 전체에서 최솟값을 '선택'하는 것이었다면,

삽입 정렬은 전체에서 하나씩 올바른 위치에 '삽입'하는 방식이다.

 

선택 정렬은 현재 데이터의 상태와 상관없이 항상 비교하고 위치를 바꾸지만, 삽입 정렬은 필요할 때만 위치를 변경하므로 더 효율적인 방식이다.