오늘 읽은 범위
EP26-29
EP26 - 정렬 알고리즘
1.버블 정렬
-순서대로 두개의 숫자를 비교해서 정렬.
-한 싸이클이 끝나면 마지막 위치를 제외하고 다시 비교시작.
-시간 복잡도가 좋은 알고리즘이라고 할 수 없음
2.선택 정렬
-가장 작은 데이터 또는 가장 큰 데이터의 위치를 따로 기억하는 방식.
3.삽입 정렬
-앞에 있는 데이터를 보면서 배치, 0번째가 아닌 1번째 데이터부터 비교시작.
-포인트는 교환이 아니라 밀어 넣는다는 것.
3개의 정렬모두 시간 복잡도는 같지만 속도는 차이가 남.
EP27- 스택과 큐
1.스택
-팬케이크를 차곡 차곡 쌓는 것처럼 위에서 데이터를 쌓는다.
-위에서부터 데이터를 뺀다.
-데이터를 중간에서 빼거나 할 수 없음.
-LIFO(last in,first out)방식이라고도 함.
-웹 브라우저의 뒤로 가기 버튼, 되돌로기 단축키(Ctrl+Z) 등
2.큐
-위로 데이터를 쌓는다.
-아래에서부터 데이터를 뺀다.
-맨 앞에 줄을 선 사람이 버스를 먼저타는 것을 생각하면 됨.
-FIFO(first in, first out)방식.
-쇼핑몰 주문 처리 시스템 등
큐와 스택 둘 다 뭘로 구현해도 상관없음. 규치만 지키면 됨.
EP28- 해시 테이블
-해시 테이블은 키와 값을 짝지어 모은 것으로,, 데이터를 더 쉽게 정리할 수 있도록 해줌.
-해시 테이블의 시간 복잡도는 O(1)로 어떤 값을 찾더라도 딱 한 단계만 거침.
EP29- 클린코드
-의미 있는 변수, 함수의 이름을 적절히 사용하기.
-함수로 무엇을 할 것인지 알 수 있도록 함수 이름은 가급적 동사로 짓기.
(함수의 액션은 1가지인 게 좋음)
-매개변수는 너무 많이 쓰지 말기.
-Boolean 값을 인자로 보내지 말기.
-축약어를 쓰지 말기.