본문 바로가기
자료구조

[자료구조] 1. 자료구조와 알고리즘

by Lizardee 2023. 10. 26.
1.1 자료구조와 알고리즘

▶ 알고리즘의 조건

  • 입력: 0개 이상의 입력
  • 출력: 1개 이상의 출력
  • 명백성: 각 명령어의 의미는 모호하지 않고 명확해야 한다.
  • 유한성: 한정된 수의 단계 후에는 반드시 종료되어야 한다. (예외: 운영체제)
  • 유효성: 각 명령어들이 실행 가능한 연산이어야 한다.

 

▶ Property of Algorithm

  • Corectness: 알고리즘이 해결하고자 하는 목표에 얼마나 근접했는지 (error rate)
  • Precision: 서로 다른 input에도 유사한 corectness이면, precision이 높다.
  • Determinism: 동일한 input에도 서로 다른 결과이면, determinism이 낮다.

 

▶ 32-bit OS vs. 64-bit OS

  • 32-bit OS: 메모리 주소 단위가 32-bit(4 bytes)이므로, (2^32-1) bytes 메모리 사용 가능; 주소를 32-bit로 표현한다.
  • 64-bit OS: 메모리 주소 단위가 64-bit(8 bytes)이므로, (2^64-1) bytes 메모리 사용 가능; 주소를 64-bit로 표현한다.

 

▶ Data types

  • bool, char: 1B
  • short: 2B
  • int, float: 4B
  • double: 8B
  • long: 4B(32-bit OS), 8B(64-bit OS)
  • pointer: 4B(32-bit OS), 8B(64-bit OS) --> dynamic memory allocation during runtime
    cf) Array --> static memory allocation, fixed size of memory

 

▶ struct(구조체) vs. union(공용체) vs. enum

struct(구조체) vs. union(공용체

  • struct: 변수들이 각각의 고정된 메모리에 할당되어, 각 element들이 독립된 메모리를 사용한다.
  • union: 변수들 중 가장 큰 것의 크기만큼만 메모리가 할당되고, 공유해서 사용한다.

 

 

1.2 추상자료형(ADT; Abstract Data Type)

: information hiding

 

 

1.3 알고리즘의 성능 분석

▶ 수행 시간 측정 방법

 

▶ 알고리즘의 복잡도 분석 방법: Big O()

  • O(1) < O(loglogn) < O(logn), O(root(n)) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) <O(n^n)

 


 

'자료구조' 카테고리의 다른 글

[자료구조] 1110  (0) 2023.11.11
[자료구조] 1107  (1) 2023.11.10
[자료구조] 1103 - 10. 그래프 (1)  (0) 2023.11.04
[자료구조] 3. 배열, 구조체, 포인터  (0) 2023.10.26
[자료구조] 2. 순환  (0) 2023.10.26