본문내용
1. 서론
1.1. 자료와 정보의 개념
자료와 정보의 개념은 현실세계의 데이터를 가공하여 특정 상황에 대한 결정이나 판단에 사용할 수 있도록 처리된 결과물이라고 할 수 있다"" 자료는 관찰과 측정을 통해 수집된 값 혹은 사실로 현실세계의 실제 대상이나 현상을 물리적인 단위로 표현한 것이다"" 예를 들어 클라이언트의 성별, 온도, 수온, 강수량 등이 자료에 해당한다"" 이러한 자료를 가공하여 특정한 상황에서 도움이 될 수 있도록 만든 결과물이 정보이다"" 즉, 정보는 자료에 대한 유효한 해설이나 자료 간의 관계를 표현한 내용으로, 어떤 상황에 대한 의사결정을 할 수 있도록 돕는 지식을 포함하고 있다""
1.2. 실생활 사례
자료는 현실세계 속 우리가 관찰하거나 측정함으로써 수집되는 값 혹은 사실로 일상생활 속 실제로 만질 수 있으며 물리적인 단위로 표현해 얻어낼 수 있는 내용이 포함된다. 예를 들어 클라이언트의 성별이나 온도, 수온, 강수량 등 다양한 요인들이 자료에 포함될 수 있다. 자료가 원시시대부터 존재했지만 당시에는 처리할 수 있는 프로세스가 개발되지 않았다는 점에서, 자료가 현실 세계에 존재하던 것이라고 볼 수 있다.
실제 사례로 도서관에서 특정 책을 찾는 과정을 들 수 있다. 수많은 책들이 체계적으로 분류되어 있는 도서관에서는 일일이 책을 확인하지 않고도 원하는 책을 찾을 수 있다. 또한 휴대폰 전화번호부에서 이름만으로 전화번호를 찾아낼 수 있는 것도 자료가 체계적으로 구조화되어 있기 때문이다. 이처럼 자료가 잘 구조화되어 있으면 효율적으로 자료를 처리할 수 있다.자료는 현실세계 속 관찰과 측정을 통해 수집된 값 또는 사실로 볼 수 있으며, 프로그래밍 작업을 수월하게 하기 위해 자료구조에 담겨 있다. 예를 들어, 도서관의 책 분류 체계나 휴대폰 전화번호부와 같이 자료가 체계적으로 구조화되어 있으면 원하는 정보를 쉽게 찾을 수 있다. 이처럼 자료구조가 잘 설계되어 있으면 자료를 효율적으로 처리할 수 있다. 따라서 자료구조는 컴퓨터 과학에서 매우 중요한 개념이라고 할 수 있다.""
2. 자료구조
2.1. 자료구조의 개념
자료구조는 컴퓨터 과학에서 데이터가 조직적으로 관리되어 구조적으로 표현될 수 있는 방식과 이를 구현하기 위해 필요한 기술이다." 자료구조는 데이터 값의 집합이자 각 데이터와의 관계나 데이터에 적용할 수 있는 함수 또는 명령이 포함되는 것이다." 따라서 자료구조는 데이터 값과 이들 간의 관계, 데이터에 적용 가능한 연산 등을 포함하는 개념이라고 할 수 있다." 자료구조는 메모리 용량을 최소한으로 사용하며 실행시간을 단축시켜 보다 효과적이고 효율적인 알고리즘의 실행에 도움을 줄 수 있다." 또한 프로그램의 설계 시 자료구조가 우선적으로 선정되어야 하는 중요한 요소이다."
2.2. 행우선 배열과 열우선 배열
배열은 일정한 차례 혹은 간격에 따라 벌려놓는다는 사전적 정의를 가지고 있으며 차례 즉, 순서와 관련한 기본적인 자료구조라고 할 수 있다. 배열은 인덱스와 원소값의 쌍으로 구성되는 집합으로 정의할 수 있다. 원소의 메모리 공간 즉, 메인 메모리인 DDR의 물리적인 위치를 순서적으로 결정하는 특징을 가지고 있다.
배열의 순서는 메모리 공간에서 저장하는 원소값의 물리적인 순서에 의해 결정된다. 호수인 인덱스로 표현되는 순서를 갖는 아파트로 메모리 영역인 원소값을 위한 저장소로 원소들이 모두 같은 자료형이나 같은 크기의 기억 공간을 갖게 된다. 배열의 인덱스값을 이용하여 배열의 원소값에 접근하므로 직접적인 접근이 가능하다.
인덱스값은 추상화된 값으로 컴퓨터 내부구조나 메모리 주소와는 무관하게 개발자에게 개념적으로 정의될 수 있다. 메모리 주소값의 경우 실제 메모리의 물리적인 위치, 주소값이된다. 인덱스와 주소값의 관계를 살펴보면 보통 배열의 인덱스는 0에서부터 시작하게 된다.
이러한 배열에서 행우선 배열의 경우 행 단위로 저장하겠다는 의미로 하나의 행을 완전히 저장하고 다음 행을 저장하는 과정을 수행하는 것이다. 따라서 메모리는 1차원으로 펴져서 저장되게 된다. 즉, 1차원 배열이 여러개 쌓여 놓아 2차원 배열로 만드는 것이다. 가로의 1차원 배열 단위로 메모리 영역이 우선 할당된다. 즉, 행렬에서 행을 먼저 설정하고 왼쪽에서 오른쪽으로 읽어나가는 형식을 가지게 된다.
열우선 배열의 경우 1차원 배열을 여러 개 세워서 놓아 2차원 배열로 만드는 것이다. 세로 1차원 배열 단위로 메모리 영역이 우선 할당되는 것이다. 즉 행렬에서 열을 먼저 설정하고 위에서 아래로 읽어가는 방식이라고 할 수 있다. 이러한 배열이 중요한 것은 메모리가 저장되는 과정에서 저장 위치와 시간의 차이로 인해 연속적인 배열을 참조할 때 메모리가 효율적으로 운용하는 것에 영향을 미칠 수 있기 때문이다.
이러한 차이는 행렬을 읽을 때 선호하는 방식이나 애로사항에 따라 차이가 있을 수 있음에서 접근할 수 있다. 열우선 행렬의 경우 컴퓨터가 ...