-
-
[전자책] Do it! 자료구조와 함께 배우는 알고리즘 입문 C 언어 편 (전면 개정판) ㅣ Do it! 시리즈
시바타 보요 지음, 강민 옮김 / 이지스퍼블리싱 (주) / 2022년 10월
평점 :
알고리즘를 이해하기 위해서는 자료구조를 알아야 합니다.
자료구조는 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계 입니다.
즉 자료를 효율적으로 사용할 수 있도록 컴퓨터에 저장하는 방법을 말합니다.
자료구조를 표현하는 방법으로 배열과 구조체를 들수 있습니다.
배열은 학생들의 점수를 저장할 변수 이름을 학번처럼 몇번째 지정하면 효율적으로 저장할 수 있습니다.
형태는 char a[5] 를 정하면 a[0]='xxx', a[1]='xxx', a[2]='xxx', a[3]='xxx', a[4]='xxx' 로 값을 저장할수 있습니다.
구조체는 임의의 데이터를 다시 조합하여 만드는 자료구조 입니다. 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있습니다.
학생 이름 배열, 키 배열, 시력 배열 을 struct 형태로 정의해서 사용할 수 있습니다.
struct xyz { char name[20], int height, double vision}; 형태로 정의해서 사용할 수 있습니다.
알고리즘하면 정렬 알고리즘에 대해 알아야 합니다.
정렬은 이름, 학번, 키 등 key의 대소 관계에 따라 데이터 집합을 일정한 순서로 줄지어 늘어서도록 바꾸는 행동을 의미힙니다.
정렬전의 데이터를 오름차순 정렬, 내림차순 정렬로 진행할 수있습니다. ( 정렬은 보통 오름차순을 의미합니다.)
정렬 종류 몇가지를 소개하겠습니다.
버블정렬은 이웃한 두 요소의 대소 관계를 비교하여 교환을 반복합니다.
선택정렬은 가장 작은 요소부터 선택해 알맞은 위치에 옮겨서 순서대로 정렬하는 알고리즘 입니다.
삽입정렬은 선택한 요소를 그보다 더 앞쪽의 알맞은 위치에 삽입하는 작업을 반복하여 정렬하는 알고리즘 입니다.
퀵정렬은 가장 빠른 정렬 알고리즘 중의 하나로 사용되고 있습니다.
병합정렬은 배열을 앞부분과 뒷부분으로 나누어 각각 정렬한 다음 병합하는 작업을 반복하여 정렬을 수행하는 알고리즘입니다.
자료구조와 알고리즘은 단시간에 이해하고 작업하기에는 어렵습니다. 형태를 이해하고 작업을 해야지 제대로 처리할 수 있습니다.
책에서 실습예제 113개와 연습문제 100개를 하나씩 도전해 나간다면 문제 푸는 갯수만큼 실력이 향상됨을 느끼실수 있을 것입니다.


