728x90
오늘 읽은 범위
- 마당 3. 컴퓨터 공학편 ep26 ~ 29
책에서 기억하고 싶은 내용
- ep26 : 정렬 sorting 알고리즘
- 버블 정렬 (bubble sort) : 서로 인접한 두 요소를 차례로 비교하며 정렬
- 앞에서부터 끝까지 이동하며 2개 요소만 비교하여 재배치시켜 한 사이클이 진행되면 마지막 자리 요소는 확정. 마지막을 제외하고 앞에서부터 동일하게 사이클 진행하면 마지막에서 두번째 자리 요소도 확정. 반복하여 맨 앞 자리까지 진행되면 정렬 완료.
- 한 사이클 당 비교 횟수 N-1 번, 교환 횟수 N-1 번 -> N-1 번의 사이클
- 시간 복잡도 = O(N^2)
- 선택 정렬 (selection sort) : 가장 작거나 큰 요소의 위치를 기억하여 차례로 배치
- 앞에서부터 가장 작은 요소를 비교하며 찾아서 위치를 따로 저장한 뒤, 맨 앞 요소와 교환. 두번째 요소부터 동일하게 사이클 진행하며 반복하면 정렬 완료
- 한 사이클 당 비교 횟수 N-1 번, 교환 횟수 1번 -> N-1 번의 사이클
- 시간 복잡도 = O(N^2)
- 삽입 정렬 (insertion sort) : 앞에 모든 요소와 비교해가며 배치
- 맨 앞은 비교할 요소가 없으니 두번째 요소부터 맨 앞 요소와 비교하고 더 작으면 앞 쪽으로 밀어 넣음. 그 다음 요소부터 바로 앞 요소와 비교해서 더 작으면 앞 쪽으로 밀어넣고 크면 그대로 유지. 앞앞 요소와도 비교해서 더 작으면 앞 쪽으로 밀어넣고 크면 그대로 유지. 이후부터 동일하게 사이클 진행하며 반복하면 정렬 완료
- 비교와 함께 바로 배치하며 정렬하기 때문에 최악과 최선의 상황이 존재. 성능이 제일 좋음
최선은 비교 횟수만 N-1 번. 최악은 비교 횟수 N-1 번, 교환 횟수 2번 -> N-1 번의 사이클 - 시간 복잡도 = O(N^2)
- 버블 정렬 (bubble sort) : 서로 인접한 두 요소를 차례로 비교하며 정렬
- ep27 : 스택, 큐
- 실제 구현되는 자료구조가 아닌 규칙 개념의 자료구조. 추상 자료구조 (abstract data type, ADT)
- 스택 = 쌓기!
- 위에서 데이터를 쌓고 위에서부터 데이터를 뺀다. LIFO = last in, first out
- 웹 브라우저의 뒤로 가기 버튼
- 되돌리기 단축키
- 큐 = 줄서기!
- 위로 데이터를 쌓는다. 아래에서부터 데이터를 뺀다. FIFO = first in, first out (선입선출)
- 쇼핑몰 주문 처리 시스템
- ep28 : 해시 테이블
- 키와 값을 짝지어 모아서 데이터를 쉽게 정리할 수 있게 함
- 시간 복잡도 = O(1) <- 키가 있는지 1번만 조회하면 되니까 상수시간
- 검색 시 키가 없으면 undefined 를 반환
- ep29 : 클린 코드
- 개발자라면 무조건 읽어야 하는 책!
- 클린 코드 = 설명이 필요 없는 코드여야 함
- 의미 있는 변수, 함수의 이름 사용. 상수값이라도 변수로 할당해라
- 함수 이름은 동사로. 함수는 1가지 역할만 하는 것이 좋다.
- 매개변수는 최소한으로. 3개 이하를 추천. 만약 많아진다면 컨피겨레이션 오브젝트 방식으로 묶어서 전달
- 불린값은 인자로 보내지 마라. 함수 안에서 참/거짓에 따라 각각 2가지의 일 처리하도록 만들지 않는다
- 혼자만 알만한 축약어 쓰지마라
오늘 읽은 소감은? 떠오르는 생각들
- 버블/선택/삽입 정렬 개념을 다시 정리할 수 있어서 좋았다. 다른 정렬 개념들도 따로 정리해봐야겠다!
- 다음 노개북으로 클린 코드 도전이다!!!!
3줄 요약
- 버블/선택/삽입 정렬 알고리즘과 스택, 큐 개념 정리
- 배열보다는 해시 테이블로 검색을 효과적이게 구현
- 개발자라면 무조건 읽어야 하는 책, 클린코드!
오늘의 2번째 과제 : 내가 번아웃을 극복하는 방법은?
'노마드코더 챌린지 > 노개북 - IT 5분 잡학사전' 카테고리의 다른 글
[북클럽][TIL] <IT 5분 잡학사전> - Day 11. 복습 & 깃허브 사용 (0) | 2024.04.24 |
---|---|
[북클럽][TIL] <IT 5분 잡학사전> - Day 10. 컴퓨터 공학 지식 (2) (1) | 2024.04.22 |
[북클럽][TIL] <IT 5분 잡학사전> - Day 8. 복습 & 부록 정리 (0) | 2024.04.20 |
[북클럽][TIL] <IT 5분 잡학사전> - Day 7. 컴퓨터 공학 지식 (1) (0) | 2024.04.19 |
[북클럽][TIL] <IT 5분 잡학사전> - Day 6. 웹 기술 용어 (2) (0) | 2024.04.18 |