TIL 10. CS특강, 정렬, 스택과 큐, 해쉬

isk·2022년 11월 11일
0

TIL

목록 보기
10/122
post-custom-banner

오늘은 CS특강을 했다.
컴퓨터 사이언스라는 것인데, 그중에서 CPU에 대해 배웠다.

컴퓨터를 사용하면서 CPU에 대해 많이 들어봤다.
하지만 무슨 일을 하는지, 어떻게 구성되어 있는지는 알지 못했다.

원래 CPU는 싱글코어였다. 하지만 코어의 성능은 한계가 있어서 멀티코어가 되었다.

cpu생김새
cpu 구성 : ALU = 산술(논리연산), CU = 컨트롤 유닛 (리얼 뇌), register, cache.
씨피유는 레지스터를 가지고, 그 수만큼의 코어가 있다. ( n개의 register. n X 코어)
register는 업무별로 general-purpose(범용), spacial-purpose(특수용)으로 나뉜다.
범용에는 eax, ecx. 특수용에는 pc레지스터(program counter)가 있다.
캐시는 데이터 교환 중, 빈번한 데이터 교환을 캐시라는 것으로 저장해놓는다.

cpu 프로그래머 통신
프로그래머가 이거 해! 명령 -> CU 가 fetch 해서 해석하고 ALU 에게 일을 준다.
ALU 가 연산(일)이 끝나면 프로그램 메모리의 상태를 바꾼다.


개인공부로는 정렬, 스택과 큐, 해쉬에 대해 배웠다.

정렬

말 그대로 데이터를 순서대로 나열하는 것이다.

a = [4,3,2,5,1] # 정렬되지 않은 날것의 배열
a = [1,2,3,4,5] # 오름차순 정렬
a = [5,4,3,2,1] # 내림차순 정렬

스택, 큐

  • 스택
    스택은 빨래통과 같다고 보면 된다.
    마지막에 넣은 데이터는 가장 위에 올라갈 것이고, 데이터를 꺼낼 때는 마지막에 넣은 데이터를 꺼내게 된다.
    되돌리기 같은 기능에 스택을 사용한다.

push(data) : 맨 앞에 데이터 넣기
pop() : 맨 앞의 데이터 뽑기
peek() : 맨 앞의 데이터 보기
isEmpty(): 스택이 비었는지 안 비었는지 여부 반환해주기


  • 큐는 위 아래가 뚫려있는 구조다.
    처음 넣은 데이터는 가장 아래에 위치하고, 꺼낼 때는 아래가 뚫려있기 때문에 가장 처음 넣은 데이터를 꺼내게 된다.

enqueue(data) : 맨 뒤에 데이터 추가하기
dequeue() : 맨 앞의 데이터 뽑기
peek() : 맨 앞의 데이터 보기
isEmpty(): 큐가 비었는지 안 비었는지 여부 반환해주기

해쉬

해쉬 알고리즘을 가지고 문자열을 고정된 길이의 데이터로 만들 수 있다.
요새 말이 많은 블록체인이라는 기술에도 쓰인다.

dict = {"fast" : "빠른", "slow": "느린"} 

파이썬에서 사용하는 딕셔너리와 같은 거다.

post-custom-banner

0개의 댓글