반응형

Computer science/Algorithm 46

문자의 표현

코드체계 : 숫자와 대응 되는 문자 형태로 저장하는 방법 ASCII코드(American Standard Code for Information Interchange) : 7비트 코드체계, 미국에서 네트워크가 발전하기 전 각 지역별로 코드 체계를 정해 사용했었다. 네트워크가 발전 후 서로간의 정보를 오인없이 주고 받기위해 고안함. 확장 ASCII 코드 : 1Byte 표준 문자 이외에 특수 문자, 특수 기호 등을 표현하기 위해 고안됨. 유니코드 : 다국어 처리를 위해 고안됨. 정보를 표현하기 위한 글자들의 집합을 문자 집합 문자집합(Character Set)은 UCS-2(Universal Character Set 2)와 UCS-4(Universal Character Set4) 바이트 순서에 대해서는 표준화하지..

Binary Search

#include #define LEN 7 int BinarySearch(int* ar, int key) { int up, down, mid; down = 0; // 처음 up = LEN - 1; // 끝 for (;;) { // 무한루프 // 중앙 원소 mid = (up + down) / 2; if (ar[mid] == key) return mid; // 목표 값이 원소보다 작다면 왼쪽 반 수행 if (ar[mid] > key) { up = mid - 1; // 왼쪽으로 } else { down = mid + 1; // 오른쪽으로 } // 검색이 끝남 if (up < down) { return -1; } } } int main() { int tc, key, arr[LEN] = { 0, }; // 테스트 ..

Sequential Search

#include #define LEN 5 int sequentialSearch(int* ar, int key) { unsigned int i; // 자료의 처음부터 끝까지 반복 for (i = 0; i < LEN; i++) { // 숫자가 존재할 경우 if (ar[i] == key) { return i; // key의 인덱스 반환 } } return -1; } int main() { int tc, key, arr[LEN] = { 0, }; // 테스트 케이스 수, 찾는 숫자, 배열 scanf_s("%d", &tc); // 테스트 케이스 수 입력 for (int t=0; t < tc; t++) { for (int i=0; i < LEN; i++) scanf_s("%d", &arr[i]); // 배열 입력 ..

Counting Sort

#include #define LEN 8 int main() { int maxValue=0; int data[LEN]; int count[LEN] = { 0, }; int temp[LEN] = { 0, }; for (int i = 0; i < LEN; i++) { scanf_s("%d", &data[i]); // 데이터 입력받기 } for (int i = 0; i < LEN; i++) { if (maxValue < data[i]) maxValue = data[i]; // counts배열의 크기 구하기 count[data[i]] += 1; // 발생 횟수 세기 } // 각 항목 위치 설정을 위한 카운트 조정 for (int i = 1; i = 0; i--) { temp[--count[data[i]]] = ..

Heap

Heap 완전 이진 트리에 있는 노드 중에서 키값이 가장 큰 노드나 키값이 가장 작은 노드를 찾기 위해 만든 자료구조 1. 최대 힙(Max heap) 키값이 가장 큰 노드를 찾기 위한 완전 이진 트리 부모 노드의 키값 > 자식 노드의 키값 루트 노드 : 키값이 가장 큰 노드 2. 최소 힙(Min heap) 키값이 가장 작은 노드를 찾기 위한 완전 이진 트리 부모 노드의 키값 < 자식 노드의 키값 루트 노드 : 키값이 가장 작은 노드 삽입 연산 최대힙이기 때문에 정렬이 필요할 경우 해야함. 삭제 연산 1. 힙에서는 루트 노드의 원소만을 삭제할 수 있음 2. 루트 노드의 원소만을 삭제하여 반환 3. 힙의 종류에 따라 최대값 또는 최소값을 구할 수 있음. 이를 이용하여 우선순위 큐를 힙으로 구현할 수 있음. ..

반응형