정렬 알고리즘
자료구조(Stack, Queue)
해시테이블과 해시함수
Ep26. 정렬 알고리즘이 뭐죠?
Ep27. 스택, 큐가 뭐죠?
Ep28. 해시 테이블이 뭐죠?
Ep29. 개발자 필수 소양,클린 코드!
버블정렬(bubble sort) => O(N^2)의 시간복잡도를 가짐, 왼쪽 오른쪽을 비교하면서 정렬하는
좋은 알고리즘은 아님
선택정렬(Selection sort) => O(N^2)의 시간복잡도를 가짐
삽입 정렬(Insertion sort) => 앞에 있는 데이터를 보면서 배치하는, 교환이 아니라 밀어 넣는다는 O(N^2)
정렬은 개발자들에게 매우 중요한 토픽
배열에 큐의 규칙을 부여하면 그 배열은 큐라고 할 수 있다.
추상 자료구조(abstract data type,ADT)
Stack: FILO, 위에서 데이터를 쌓는다. 위에서 부터 데이터를 뺀다
Queue: FIFO, 위로 데이터를 쌓는다, 아래에서부터 데이터를 뺀다.
웹 브라우저의 뒤로가기 버튼, 되돌리기 단축키 => Stack
쇼핑몰 주문처리 시스템 => Queue
"어떻게 하면 프로그램의 속도를 더 빠르게 만들수 있을까"
해시테이블은 사전처럼 사용할수있는
해시 테이블 O(1) => 검색 ,추가, 삭제
해시테이블이 빠를수있는 이유 => 해시함수
Hash Collison
클린코드: 설명이 필요없는 코드
클린코드백서1. 의미있는 변수, 함수의 이름을 적절히 사용해라
클린코드백서2. 함수 이름은 가급적 동사로 지어라
클린코드백서3.매개변수는 너무 많이 쓰지마라 configuration object 라는 방식으로 매개변수를 묶어 전달하는 방법을 사용
클린코드백서4. boolean값을 인자로 보내지마라
클린코드백서5. 축약어를 쓰지마라
일단 잘 실행되는 코드를 막 쓰고 마지막에 클린하게 다듬자
프로그램의 속도를 빠르게 하는것과 깔끔한 코드를 작성하기 위한 개발자들의 지속적인 노력들을 찾아보았다. 여러도서들과 유튜브에서 알려주는 꿀팁도 있지만 확실히 내가 작성하고 만들어본 후에 리팩토링하면서 알아가는것이 가장 확실하다고 생각했다.