7. EP26-29

Ann·2023년 1월 21일
0

IT 5분 잡학사전

목록 보기
8/11

2023.01.21

EP26 정렬 알고리즘이 뭐죠?

버블정렬

Bubble Sort
오른쪽으로 이동하며 2개씩 비교하여 위치 변경
시간복잡도 O(N^2)

선택정렬

Selection Sort
가장 작거나 가장 큰 데이터의 위치를 기억하는 방식
시간복잡도 O(N^2) ( 버블정렬보다는 빠름 )

삽입정렬

Insertion Sort
값을 비교하여 순서대로 밀어넣는 방식 ( 교환x 삽입o )
시간복잡도 O(N^2) ( 버블정렬, 선택정렬보다는 빠름 )

EP27 스택, 큐가 뭐죠?

규칙 개념의 자료구조

스택(Stack)

  1. 위에서 데이터를 쌓음
  2. 위에서부터 데이터를 뺌

- LIFO (last in, first out)
프링글스통 같은 구조

큐(Queue)

  1. 위에서 데이터를 쌓음
  2. 아래에서부터 데이터를 뺌

- FIFO (first in, first out)
휴지심 같은 구조

스택, 큐의 예

웹브라우저의 뒤로가기 = 스택
되돌리기(ctrl+z) = 스택
쇼핑몰 주문처리 = 큐

EP28 해시 테이블이 뭐죠?

키와 값을 짝지어 모은 것

menu = [
	{ name: "아메리카노", price: 10 },
    { name: "라떼", price: 12 },
    { name: "녹차", price: 15 },
    { name: "케이크", price: 45 },
];

// 해시테이블
menu = {
	아메리카노: 10,
    라떼: 12,
    녹차: 15,
    케이크: 45,
};

배열의 데이터를 모두확인(선형검색)할 경우 시간복잡도 O(N)
해시테이블의 시간복잡도 O(1)
검색, 데이터추가, 데이터삭제 모두 O(1)

해시 테이블

배열 형태로 구성 -> 해시 함수를 통해 빠르게 처리
* 해시충돌 (hash collison)
같은 인덱스 값을 갖는 경우 다시 선형검색
(항상 O(1)인 것은 아니지만 일반적으로는 O(1))

EP29 개발자 필수 소양, 클린 코드!

개발자라면 반드시 읽어야 하는 책 <<클린 코드>>

  1. 의미있는 변수, 함수의 이름을 적절히 사용할 것
  2. 함수 이름은 가급적 동사로 지을 것
  3. 매개변수는 너무 많이 쓰지 않을 것
  4. Boolean값을 인자로 보내지 않을 것
  5. 축약어를 쓰지 않을 것

클린코드 책도 얼른 시작해야겠다...

profile
안녕하세요

0개의 댓글