개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
<예시>
기계적으로 측정한 시간 복잡도는 같아도 평균적으로 빠른 알고리즘은 있을 수 있다.
큐나 스택은 배열처럼 실제 존재하는 문법이 아니라 추상 자료구조이다.
코워크나 코드의 유지보수를 위해 클린코드로 코딩하자.
</예시>
TIL (Today I Learned) 날짜
2023.09.02
오늘 읽은 범위
26장.
버블정렬 : 인접한 두 수룰 비교해서 큰 수를 뒤쪽으로. 한 사이클 돌면 제일 큰 수가 마지막에 위치.
두번째 사이클에서는 마지막 위치의 데이터는 제외하고 같은 방법으로 진행.
선택정렬: 가장 작은 수 또는 가장 큰 수의 위치를 기억. 첫번째 사이클에서는 첫번째 데이터와 가장 작은수가 위치한 데이터의 자리를 교환.두번쨰 사이클은 첫번쨰 데이터 제외하고 시작.
삽입정렬: 앞에있는 데이터를 비교하며 , 작은데이터가 나타날때까지 또는 비교할 데이터가 없을때까지 데이터를 밀면서 배치.
성능은 삽입> 선택> 버블
시간복잡도는 O(n2) 으로 복잡도가 같지만, 이것은 단순 측정했을떄 의미이고
데이터 배열상태, 종류 등에 따라 속도처리는 다르고, 평균적으로 빠른 알고리즘이 있다는 의미.
27장. 스택 큐
큐나 스택은 배열처럼 실제 존재하는 문법이 아니라 추상 자료구조이다.
스택 : FILO , 되돌리기, 웹브라우저의 뒤로가기
큐: FIFO 쇼핑몰 주문처리 시스템
28장. 해시테이블
키와 값을 짝지어 모은 것.
키 값으로 원하는 데이터 검색.
시간 복잡도는 O(1)
원리 : 키값이 해시 함수를 통과하면(규칙 설정) 인덱스로 바뀜. 인덱스로 찾는 데이터르 직접 access.
해시충돌 일어나면? 인덱스 하나에 또하나의 배열을 넣는다. 그 안에서는 선형검색 O(n)
평균적으로 O(1)이라는 의미.
29장 클린코드
의미있는 변수, 함수의 이름을 적절히 사용하기
함수이름은 가급적 동사
매개변수 많이 사용하지 않기
불린값을 인자로 보내지 않기
축약어 쓰지 않기
오늘 읽은 소감은?
모두 알고 있는 내용이지만, 니코쌤의 비유를 곁들여서 정리를 하니, 다른 사람에게도 찰떡 같이 설명해 줄 수 있게 되었다.