B2024001225 윤지선

2024.09.11 2학기 2주차 수업 본문

2024년 2학기/자료구조

2024.09.11 2학기 2주차 수업

윤지선 2024. 9. 11. 12:43

# 논리연산 -> NOT

                  -> AND   -> NAND  -> 직렬회로

                  -> OR     -> XOR    -> 병렬회로

 

직렬회로(AND)는 모두가 참일 때 작동

병렬회로(OR)는 하나라도 참일 때 작동

 

XOR = A+B -> 서로 반대일 때 참

 

# 32비트로 나타냈을 때 제일 왼쪽은 부동을 나타냄

0 = 양수

1 = 음수

0 or 1 8 소수부(가수부)

      양수 or 음수                            지수

 

2진수와 10진수

수치 자료의 표현

문자 자료의 표현

● 문자에 대한 이진수 코드를 정의하여 사용

문자에 대한 이진수 코드표

   - BCD 코드

   - EBCDIC 코드

   - ASCII 코드 (미국 정보 교환용 표준 부호)

 

BCD 코드

6비트를 사용하여 문자 표현

   - 상위 2비트 : 존 비트

   - 하위 4비트 : 2진수 비트

   - 존 비트와 2진수 비트를 조합하여 10진수 0~9와 영어 대문자, 특수 문자를 표현

BCD 코드의 구성

 

 

 

 

EBCDIC 코드

8비트를 사용하여 문자 표현

   - 상위 4비트 : 존 비트

   - 하위 4비트 : 2진수 비트

   - 존 비트와 2진수 비트를 조합하여 10진수 0~9와 영어 대문자 / 소문자와 특수문자를 표현

EBCDIC 코드의 구성

 

 

ASCII 코드

7비트를 사용하여 문자 표현

   - 상위 3비트 : 존 비트

   - 하위 4비트 : 2진수 비트

   - 존 비트와 2진수 비트를 조합하여 10진수 0~9와 영어 대문자 / 소문자, 특수문자를 표현

유니코드

EBCDIC 코드나 ASCII 코드는 최대 8비트로 숫자, 몇 가지 특수문자, 알파벡 정의하므로 문자 코드 표에 정의되어 있지 않은 문자 표현 불가능

● 이런 문제를 해결하기 위해 세계 여러 나라의 언어를 통일된 방법으로 표현할 수 있도록 정의한 국제 표준 코드(ISO/IEC 10646)

2바이트를 조합하여 하나의  글자를 표현하기 때문에 1바이트 코드로 표현할 수 없었던 다양한 언어를 표현

초기 IBM 컴퓨터 시스템에서는 BCD 코드를 사용하다가 더 많은 문자 코드를 표현할 수 있는 EBCDIC 코드로 대체, 그러다 미국 표준 코드인 ASCII 코드 일반화, 현재는 표현의 한계를 극복한 유니코드가 일반화

논리자료

뇌의 추상화 기능

기억할 대상의 구별되는 특징만을 단순화하여 기억하는 기능

 

알고리즘

문제해결 방법을 추상화하여 단계적 절차를 논리적으로 기술해 놓은 명세서

알고리즘의 조건 <시험 출제 다수>

   - 입력 : 알고리즘 수행에 필요한 자료가 외부에서 입력으로 제공 될 수 있어야 한다

   - 출력 : 알고리즘 수행 후 하나 이상의 결과를 출력해야 한다

   - 명확성 : 수행할 작업의 내용과 순서를 나타내는 알고리즘의 명령어들은 명확하게 명세 되어야 한다.

   - 유한성 : 알고리즘은 수행 뒤에 반드시 종료 되어야 한다. 

   - 효과성 : 알고리즘의 모든 명령어들은 기본적이며 실행이 가능해야 한다.

알고리즘의 표현 방법의 종류

   - 자연어를 이용한 서술적 표현 방법

   - 순서도를 이용한 도식화 표현 방법

   - 프로그래밍 언어를 이용한 구체화 방법  ->  우리가 사용하는 방법

   - 가상 코드를 이용한 추상화 방법

 

ex) 1~100까지 합

① 카운터 -> 시작

② 어떻게 카운터 할지 (증가치 1->2->3)

③ 누적 (합)

④ 어디까지 카운터 할지 => 비교

⑤ 합 출력

 

알고리즘의 표현방식

   - 다단계 조건문

        - 중첩 if문의 형식과 제어 흐름

중첩 if문의 형식과 제어 흐름

case 문

   - 여러 조건식 중에서 해당 조건을 찾아서 그에 대한 명령문을 수행

   - 중첩 if문으로 표현 가능

   - 식과 제어 흐름

case 문의 형식과 제어 흐름

 

반복문

   - 일정한 명령을 반복 수행하는 루프(loop) 형태의 제어구조

   - for문 (형식과 제어 흐름)

for문의 형식과 제어 흐름

 

함수문

   - 처리작업별로 모듈화 하여 만든 부 프로그램

   - 형식과 예

 

알고리즘 성능 분석 기준

기준에는 정확성, 명확성, 수행량, 메모리 사용량, 최적성 등이 있음

   - 정확성 : 올바른 자료 입력 시 유한한 시간 내에 올바른 결과 출력 여부

   - 명확성 : 알고리즘이 얼마나 이해하기 쉽고 명확하게 작성되었는가

   - 수행량 : 일반적인 연산 제외, 알고리즘 특성 나타내는 중요 연산 모두 분석

   - 메모리 사용량

   - 최적성 : 가장 중요

 

알고리즘 성능 분석 방법

공간 복잡도

   - 알고리즘을 프로그램으로 실행하여 완료하기까지 필요한 총 저장공간의 양

   - 공간 복잡도 = 고정공간 + 가변공간

시간 복잡도

   - 알고리즘을 프로그램으로 실행하여 완료하기까지의 총 소요시간

   - 시간 복잡도 = 컴파일 시간 + 실행 시간

      - 컴파일 시간 : 프로그램마다 거의 고정적인 시간 소요

      - 실행 시간 : 컴퓨터의 성능에 따라 달라질 수 있으므로 실제 실행시간보다는 명령문의 실행 빈도수에 따라 계산

   - 실행 빈도수의 계산

      - 지정문, 조건문, 반복문 내의 제어문과 반환문은 실행시간 차이가 거의 없으므로 하나의 단위시간을 갖는

        기본 명령문 으로 취급.

 

알고리즘 성능 분석 표기법

빅오 표기법이란? 

: 알고리즘의 효율성을 표기해주는 표기법

   - 알고리즘의 효율성은 데이터 개수(n)가 주어졌을 때 덧셈, 뺄셈, 곱셈 같은 기본 연산의 횟수를 의미한다

   - 빅오 표기법은 보통 알고리즘의 시간 복잡도와 공간 복잡도를 나타내는데 주로 사용함

   - 시간 복잡도는 알고리즘의 시간 효율성을 의미하고, 공간 복잡도는 알고리즘의 공간 (메모리) 효율성을 의미한다. 

   - 시간과 공간 복잡도를 나타내는 다른 방법으로 점근표기법(빅오(Big-O), 빅오메가(big-Ω), 빅세타(big-θ)) 표기법이 있다.

 

배열

: 같은 자료형을 가진 자료들을 나열하여 메모리에 연속으로 저장하여 만든 자료들의 그룹

모든 자료형에 대해서 배열로 구성 가능

구성 형태에 따라 1차원 배열, 2차원 배열, 3차원 배열..

인덱스(index)

   - 배열의 요소를 간단히 구별하기 위해 사용하는 번호

   - C에서 인덱스는 항상 0부터 시작은

'2024년 2학기 > 자료구조' 카테고리의 다른 글

2024.09.04 2학기 1주차 수업  (3) 2024.09.04