본문 바로가기

오늘은 뭘 배울까?/알고리즘12

버블 정렬이란? 1. 버블 정렬 1-1. 버블 정렬이란? 1-2. 움짤로 보는 예시 1-3. 글로 보는 예시 1-4. 소스코드 1-5. 버블 정렬의 시간 복잡도 1. 버블 정렬 1-1. 버블 정렬이란? 버블 정렬이란 거품이 뽀글뽀글 올라가는 것처럼 보인다고 해서 붙여진 이름이다. (네이밍 너무 귀엽잖아.. 🥰) 이름도 귀엽고 정렬 중에는 구현하기 가장 쉬운 편에 속해서 개인적으로 제일 좋아했던 정렬이었으나 알고리즘 공부를 하면서 이놈이 효율이 쓰레기 좋지 않다는 것을 알게 되고 전혀 쓰지 않는다. 심지어 내장 기능으로 탑재된 정렬이 이것보다는 좋아서.. 버블 정렬은 "이걸 써먹겠어!"라고 해서 배우기보다는 정렬이란 무엇인가... 어떤 것들이 있는가... 를 알아보기 위해 배우는 것이다. 기본적인 개념은 말로 백번 설명하.. 2021. 5. 11.
시간 복잡도란? 1. 시간 복잡도 1-1. 시간 복잡도란? 1-2. Big-O 표기법 2. 예제 2-1. O(1) 2-2. O(n) 2-3. O(n²) 2-4. O(n³) 2-5. O(nm) 2-6. O(2ⁿ) 2-7. O(logn) 3. 그 외 3-1. 상수항 무시 3-2. 영향력이 낮은 항 무시 3-3. 대략적인 소요시간 추측하기 1. 시간 복잡도 1-1. 시간 복잡도란? 우리가 작성한 코드는 실행시간이 얼마나 걸릴까? 실행해보기 전에 정확한 시간을 추측하는 것은 힘들겠지만 반복문을 몇 번 사용했는지, 입력값은 어떻게 되는지 등을 통해 대략적으로 이 정도 되겠구나.. 를 추측할 수 있다. 즉, 우리는 입력값과 연산 수행 시간의 상관관계를 나타내는 척도를 시간 복잡도라고 한다. 1-2. Big-O 표기법 같은 알고리즘.. 2021. 5. 10.