로그 공부하고 뒤에 한 번 보자. 또한 속도 즉 식이 나오는 것을 다시 공부해보자 정렬부터는 알고리즘에 대해서 배운다. 알고리즘(Algorithms) 9세기 페르시아의 수학자 '아부 압둘라 무하마드 이븐 무사 알 콰리즈키의 이름에서 따온 이름 : 문제를 해결하기 위한 일련의 명령이나 반복되는 절차를 말한다. 이번에 배우게 되는 알고리즘은 데이터를 일련의 명령이나 반복되는 절차에 의해 정렬을 수행하는 정렬 알고리즘이다. 세 가지의 알고리즘을 설명할 것이다. 버블 정렬, 삽입 정렬, 퀵 정렬 콩쥐에게 텍스트 에디터와 C 컴파일러만 설치된 컴퓨터(1초에 200회만의 연산이 간으한 고물)와, 3만 명이나 되는 학생들의 성적 데이터를 CD에 담아 콩쥐에게 건네주며 "내가 오늘 장에서 돌아올 때까지 석차 17,21..
C++/뇌를 자극하는 알고리즘
나무 모양의 자료구조인 트리는 응용 분야가 굉장히 다양하다. 어떤 트리는 조직도 같은 계층적인 데이터를 표현하는 데 사용되고, 어떤 트리는 수식을 표현할 때 사용됩니다. 또 어떤 트리는 집합을 나타내는 데 사용되며, 심지어는 데이터의 탐색을 위한 트리도 있다. 트리의 가장 중요한 응용 분야 중 하나는 탐색이다. 이것은 6장 탐색에서 더 알아보자. 트리는 나무를 닮은 자료구조이다. 컴퓨터 과학에서도 트리는 굉장히 활용도가 높은 자료구조이다. 운영체제의 파일 시스템이 트리 구조로 이루어져 있고, HTML이나 XML 문서를 다룰 때 사용하는 DOM(Document Object Model)도 트리 구조로 이루어져 있다. 검색 엔진이나 데이터 베이스도 트리 자료구조에 기반해서 구현된다. 트리 트리는 뿌리(Root..
큐는 입력과 출력 창구가 따로 존재하고, 제일 먼저 들어간 데이터가 제일 먼저 나오는 자료구조이다. 근데 입력한 순서대로 데이터를 처리할 것 같으면 왜 큐를 사용할까? :데이터 입력이 폭주하는 경우를 생각해보자. 먼저 입력받은 데이터의 처리가 안 끝났는데 그 뒤에 새로운 데이터가 마구 입력되면 그 데이터들은 보관할 장소가 따로 없으므로 모두 버려야한다. 이럴 때 밀려드는 데이터를 '보관할 '장소로 큐가 필요하다. 먼저 들어가고 먼저 나오는(FIFO(First In First Out)), 또는 선입선출 자료구조를 큐라고 한다. 큐는 우리 말로 번역하면 대기행렬이라고 하는데, 대기가 기다리다. 행렬이 줄이라는 뜻이니 큐는 '기다리는 줄'이라고 할 수 있다. 큐의 주요 기능: 삽입과 제거 큐의 가장 앞 요소를..
스택은 아래에서부터 위로 쌓아 얹어 올리도록 하는 자료구조이다. 중간에 데이터를 삽입하거나 삭제하는 것을 허용하지 않는다. 데이터의 입/출력은 오로지 스택의 꼭대기에서만 이루어진다. 스택에서 가장 마지막에 들어간 데이터가 제일 먼저 나오고(Last In - First Out) 가장 먼저 들어간 데이터는 나중에 나오게(First-In - Last Out)된다. 즉, 이런 구조를 일컬어 FILO, LIFO이라고 부르는데, 요소의 삽입과 삭제가 자료구조의 한쪽 끝에서만 이루어지는 것이 특징이다. 스택의 주요 기능 삽입(Push)과 제거(Pop) 두 가지 뿐이다. 그 외 기능들은 이들 두 연산을 위한 보조 연산에 지나지 않는다. 삽잆 연산은 스택 위에 새로운 노드(또는 요소)를 '쌓는' 작업이다. 링크드 리스트..