B2024001225 윤지선
2024.09.11 2학기 2주차 수업 본문
# 논리연산 -> 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와 영어 대문자, 특수 문자를 표현
EBCDIC 코드
● 8비트를 사용하여 문자 표현
- 상위 4비트 : 존 비트
- 하위 4비트 : 2진수 비트
- 존 비트와 2진수 비트를 조합하여 10진수 0~9와 영어 대문자 / 소문자와 특수문자를 표현
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문의 형식과 제어 흐름
case 문
- 여러 조건식 중에서 해당 조건을 찾아서 그에 대한 명령문을 수행
- 중첩 if문으로 표현 가능
- 식과 제어 흐름
반복문
- 일정한 명령을 반복 수행하는 루프(loop) 형태의 제어구조
- for문 (형식과 제어 흐름)
함수문
- 처리작업별로 모듈화 하여 만든 부 프로그램
- 형식과 예
알고리즘 성능 분석 기준
● 기준에는 정확성, 명확성, 수행량, 메모리 사용량, 최적성 등이 있음
- 정확성 : 올바른 자료 입력 시 유한한 시간 내에 올바른 결과 출력 여부
- 명확성 : 알고리즘이 얼마나 이해하기 쉽고 명확하게 작성되었는가
- 수행량 : 일반적인 연산 제외, 알고리즘 특성 나타내는 중요 연산 모두 분석
- 메모리 사용량
- 최적성 : 가장 중요
알고리즘 성능 분석 방법
● 공간 복잡도
- 알고리즘을 프로그램으로 실행하여 완료하기까지 필요한 총 저장공간의 양
- 공간 복잡도 = 고정공간 + 가변공간
● 시간 복잡도
- 알고리즘을 프로그램으로 실행하여 완료하기까지의 총 소요시간
- 시간 복잡도 = 컴파일 시간 + 실행 시간
- 컴파일 시간 : 프로그램마다 거의 고정적인 시간 소요
- 실행 시간 : 컴퓨터의 성능에 따라 달라질 수 있으므로 실제 실행시간보다는 명령문의 실행 빈도수에 따라 계산
- 실행 빈도수의 계산
- 지정문, 조건문, 반복문 내의 제어문과 반환문은 실행시간 차이가 거의 없으므로 하나의 단위시간을 갖는
기본 명령문 으로 취급.
알고리즘 성능 분석 표기법
● 빅오 표기법이란?
: 알고리즘의 효율성을 표기해주는 표기법
- 알고리즘의 효율성은 데이터 개수(n)가 주어졌을 때 덧셈, 뺄셈, 곱셈 같은 기본 연산의 횟수를 의미한다
- 빅오 표기법은 보통 알고리즘의 시간 복잡도와 공간 복잡도를 나타내는데 주로 사용함
- 시간 복잡도는 알고리즘의 시간 효율성을 의미하고, 공간 복잡도는 알고리즘의 공간 (메모리) 효율성을 의미한다.
- 시간과 공간 복잡도를 나타내는 다른 방법으로 점근표기법(빅오(Big-O), 빅오메가(big-Ω), 빅세타(big-θ)) 표기법이 있다.
배열
: 같은 자료형을 가진 자료들을 나열하여 메모리에 연속으로 저장하여 만든 자료들의 그룹
● 모든 자료형에 대해서 배열로 구성 가능
● 구성 형태에 따라 1차원 배열, 2차원 배열, 3차원 배열..
● 인덱스(index)
- 배열의 요소를 간단히 구별하기 위해 사용하는 번호
- C에서 인덱스는 항상 0부터 시작은
'2024년 2학기 > 자료구조' 카테고리의 다른 글
2024.09.04 2학기 1주차 수업 (3) | 2024.09.04 |
---|