추상화와 알고리즘

막막지음·2024년 6월 26일

문자열 String-type -> C언어에서는 문자열 타입이 없음.배열 형식 사용.
배열형식

  1. 구분자 사용 - 문자로 세미콜론 사용 (;)
    단점: 탐색이 오래 걸림.

  2. 고정 길이 - 긴 문자열 길이x 부분문자열의 개수
    단점: 낭비되는 문자열이 생김.

  3. 포인터를 사용 - 중요한건 * 와 &
    단점:포인터가 없어도 함수 구현 가능
    객체 지향언어로 인해 대세에서 밀리는 중.

구분자 사용과 고정 길이는 데이터 처리와 저장 방식에 따라 상호 보완 관계임.


자료의 추상화
뇌의 추상화 -> 핵심 요약
자료의 추상화 -> 단순화 (정수의 집합 등, 키 큰사람의 집합 등)
삼각형의 상위 무엇을? (추상화) => 도형
삼각형의 하위 어떻게? (구체화) => 입체

알고리즘 성능 분석
최적성: 가장 중요
절차지향->빠르게
객체지향->재활용, 모듈화

자원 (CPU,memory) 측면에서 분석하는 공간 복잡도
소요되는 시간 측면에서 분석하는 시간 복잡도

공간 복잡도: 알고리즘은 프로그램으로 실행하여 완료되기까지 필요한 저장 공간의 양
총 필요 공간 = 고정 요구 공간 + 가변 요구 공간

시간 복잡도: 컴파일링 시간 / 실행 시간
실행빈도수: 제어문, 주로 반복문
피보나치 수열로 실행 빈도수를 비교

알고리즘 성능 분석표기법

    Big - O 빅-오 표기법 : 아무리 못해도 n초 안에는 끝냄.

    	 O(f(n)) 
    

    Big - Omega(Ω) 빅-오메가 표기법 : 아무리 못해도 n초는 걸림.

    	 Ω(f(n)) 
    

    Big - Seta(Θ) 빅-세타 표기법 : 무조건 n임.

    	 f(n)=Θ(f(n)), f(n) = Ω(f(n)), f(n) = O(f(n))) 
    

자료구조: 부품
알고리즘: 설계도
조립: 프로그램언어
완성: 소프트웨어

profile
방가방가예요

0개의 댓글