개발자 99% 커뮤니티에서 수다 떨어요!
오늘 읽은 범위 : 에피소드 26. 정렬 알고리즘이 뭐죠? ~ 29. 개발자 필수 소양, 클린 코드!
버블, 선택, 삽입 정렬은 시간 복잡도가 같지만 속도 차이가 있다구~!
스택은 LIFO , 큐는 FIFO
해시테이블은 키 - 값의 쌍 이라구~
[ 정렬 알고리즘 ]
버블 정렬
간단하면서도 비효율적인 정렬 알고리즘
오른쪽으로 1칸 씩 밀면서 왼쪽과 오른쪽을 비교하는 방식으로 정렬함
시간 복잡도 : O(N2) → 비효율적 + 사용 잘 안함
선택 정렬
가장 작은 데이터 또는 가장 큰 데이터의 위치를 따로 기억하는 방식
시간 복잡도 : O(N2) → 버블 정렬보다 효율적 ( 자리 바꾸는 연산은 사이클 당 1번씩)
삽입 정렬
교환이 아닌 밀어 넣음
인덱스 1번위치에서 부터 시작
시간 복잡도 : O(N2) → 선택, 버블 정렬 보다 빠름
>> 시간 복잡도가 같은데 속도 차이가 나는 이유 <<
시간 복잡도를 단순히 측정 했을때의 경우 같은 결과 나옴
따라서, 시간 복잡도는 같아도 평균적으로 빠른 알고리즘 있을 수 있음
[ 큐, 스택 ]
스택
위에서 데이터 쌓음
위에서 부터 데이터를 뺌
예) 뒤로 가기 버튼, 되돌리기 단축키
큐
위에서 데이터 쌓음
아래에서 부터 데이터 뺌
예) 쇼핑몰 주문 처리 시스템
[ 해시 테이블 ]
키-값(key-value) 쌍을 저장하며, 특정 키를 사용하여 빠르게 값을 검색할 수 있는 구조
시간 복잡도 : O(1)
해시함수 : 인덱스로 바꿔주는 역할
[ 클린 코드 ]
의미 있는 변수, 함수의 이름을 적절히 사용하기
함수 이름은 가급적 동사로 지어라
매개변수는 너무 많이 쓰지 마라
불린값을 인자로 보내지 마라
축약어를 쓰지마라
클린 코드를 하는 법에 알게되어서 좋았고 누군가가 내 코드를 보고 바로 이해가도록 열심히 공부해야겠다는 생각이 들었다!