알고리즘 Introduction & Analysis
·
Algorithm
Introduction 알고리즘 (Algorithm) ※ 주어진 일(또는 문제)을 처리하여 원하는 결과(output)를 얻기까지의 과정을 명확하고 단계적으로 서술한 것 예) 조리법 : 음식을 만드는 알고리즘 길안내 : 낯선 도시에서 길을 찾아가기 위한 알고리즘 세탁기조작법 : 세탁기 조작을 위한 알고리즘 악보 : 음악연주를 위한 알고리즘 ※ 알고리즘을 찾는 작업의 효시 현대의 컴퓨터가 개발되기 훨씬 전부터 수학의 한 분야로 시작 ※ 목표 특정 유형의 모든 문제들을 해결할 수 있는 방법을 서술하는 일련의 명령들을 찾는 것 ※ 알고리즘의 예 : 유클리디안 알고리즘(Euclidean algorithm) 그리스 수학자 유클리드가 발견함 ※ 일단 작업을 수행하기 위한 알고리즘을 찾은 다음에는 알고리즘이 기초하고 ..
컴퓨터 구조 - 메모리와 캐시 메모리
·
컴퓨터 구조 요약
1. RAM의 특성과 종류 - RAM의 특징 - RAM의 용량과 성능 - RAM의 종류 2. 메모리의 주소 공간 - 물리 주소와 논리 주소 - 물리 주소와 논리 주소의 변환 - 메모리 보호 3. 캐시 메모리 - 저장 장치 계층 구조 - 참조 지역성의 원리
컴퓨터 구조 - CPU성능 향상 기법
·
컴퓨터 구조 요약
1. 빠른 cpu를 위한 설계 기법 - 코어와 멀티코어 - 스레드와 멀티스레드 - 하드웨어적 스레드, 소프트웨어적 스레드 2. 명령어 병렬처리 기법 - 명령어 파이프라인 3. 메모리 집합구조 - CISC - RISC
컴퓨터 구조 - CPU작동 원리
·
컴퓨터 구조 요약
1. ALU와 제어장치 - ALU - 클럭 2. 레지스터 - 상대주소지정방식 - 베이스주소지정방식 3. 명령어 사이클과 인터럽트 - 명령어 사이클 - 인터럽트 - 동기 인터럽트 - H/W인터럽트 처리과정(비동기)
컴퓨터 구조 - 명령어
·
컴퓨터 구조 요약
1. 소스코드와 명령어 - 고급언어 - 저급언어 2. 명령어의 구조 - 연산코드+오퍼랜드 - 주소 지정 방식 3. C언어 컴파일 과정 - 전처리기 - 컴파일러 - 어셈블러 - 링커
컴퓨터 구조 - 데이터
·
컴퓨터 구조 요약
1. 0과 1로 숫자를 표현하는 방법 - 2진법 -16진법 2. 0과1로 문자를 표현하는 방법 - 아스키 코드 - 유니 코드
컴퓨터 구조 - 학습 이유 및 주요 부품
·
컴퓨터 구조 요약
1. 컴퓨터의 구조를 알아야 하는 이유 - 문제 해결능력 상승 - 성능, 용량, 비용을 고려하며 개발 가능 2. 컴퓨터 구조의 큰 그림 - 컴퓨터가 이해하는 정보 - 컴퓨터의 4가지 핵심부품
Graph Algorithm(플로이드-워샬 알고리즘)
·
Algorithm
플로이드-워샬(Floyd-Warshall) 알고리즘 모든 정점들간의 상호 최단거리(All Pairs Shortest Path)를 구하는 알고리즘이다. 응용 예시로는 Road Atlas, 네비게이션 시스템, 네트웍 커뮤니케이션 등이 있다. 그렇다면 플로이드-워샬이 무엇이고, 왜 쓰이는지 알아보자. 앞서 배운 다익스트라, 벨만-포드 알고리즘은 시작점이 주어지면 하나의 정점에서 다른 모든 정점으로의 최단경로를 구했다면, 플로이드-워샬 알고리즘은 모든 정점으로부터 모든 정점으로의 최단경로를 구하는대 사용된다. 알고리즘 구현 방식도 다르다. 다익스트라 알고리즘은 vertex set에서 가장 작은 노드를 꺼내서 하나씩 더하면서 최소값을 찾아가는 Greedy한 알고리즘을 사용하지만, 플로이드-워샬은 각 노드를 하나씩..
Graph Algorithm(벨만-포드 알고리즘)
·
Algorithm
벨만-포드(Bellman-Ford) 알고리즘 벨만포드 알고리즘도 그래프에서 최소비용을 구할 수 있는 알고리즘 중에 하나이다. 벨만포드 알고리즘은 최소비용을 구하는 알고리즘 중에서도, 한 정점에서 다른 모든 정점으로 가는데 걸리는 최소비용을 구하는데 사용하는 알고리즘이다. 이 점은 다익스트라와 동일하다. 그런데 벨만포그와 다익스트라 알고리즘 중에서 언제 무엇을 사용해야 하는 걸까?? 그리고 시간 복잡도에서 말하겠지만, 벨만포드 알고리즘은 일반적으로 다익스트라 알고리즘보다 더 시간이 오래 걸리는 탐색 방법인데 굳이 이 방법을 써야할까 ?? 우선 벨만포드의 특징 부터 살펴보자 먼저 다익스트라와 마찬가지로 시작점이 존재한다. 하지만 벨만포드의 가장 중요한 포인트는 가중치가 0보다 작을 수 있다는 점이다. 음의 ..
Graph Algorithm(다익스트라 알고리즘)
·
Algorithm
다익스트라Dijkstra 알고리즘 다익스트라 최단 경로 알고리즘은 그래프에서 여러 개의 노드가 있을 때, 특정한 노드에서 출발하여 다른 노드로 가는 각각의 최단 경로를 구해주는 알고리즘이다. 다익스트라 알고리즘은 '음의 간선(0보다 작은 값을 가지는 간선)'이 없을 때 정상적으로 동작한다. 다익스트라 알고리즘은 프림 알고리즘 과 동작방식이 비슷하다. 다만 프림알고리즘은 단순히 간선의 길이를 이용해 어떤 간선을 먼저 연결할지 결정하는데 반해, 다익스트라 알고리즘은 '경로의 길이'를 감안해서 간선을 연결한다.다익스트라의 최단 경로 탐색 알고리즘은 사이클이 없는 방향성 그래프에 한해서만 사용 가능. 1. 다익스트라 알고리즘 수도코드 및 알고리즘 원리 S = r로부터의 거리가 계산되고 최단경로가 계산된 집합이다..