Sub Visual
취업정보 홈 | 취업안내 | 취업정보 IT전문가와 취업의 꿈을 향하여 전진하는 곳입니다.
 
작성일 : 13-07-09 14:25
프로그래밍, 자료구조와 알고리즘에 대해 알아보자!!
 글쓴이 : 조교 (220.♡.24.87)
조회 : 1,827  
[프로그래밍] 프로그래밍, 자료구조와 알고리즘에 대해 알아보자!!
 
 
이번 포스팅은 프로그래밍을 공부하시는 분들을 위해 자료구조와 알고리즘에 대해 알아보려고 합니다.
 
 
자료구조란 컴퓨터의 메모리에 데이터들을 어떻게 정의하여 나열하고
 
저정할 것 인가에 관한 다양한 형식과 그에 따른 저장 방법을 이야기하는 것이며,
 
알고리즘이란 데이터들을 처리하기 위한 일련의 절차와 방법을 말합니다.
 
 
그럼, 본론으로 들어가 자료구조와 알고리즘에 대해 하단에 포스팅을 하오니
 
프로그래밍 공부를 하시는 분들은 참고하시기 바랍니다.
 
 
 
 
 [프로그래밍] 데이터 저장방법이나 처리절차방법에 대해 알 필요가 있을까요?
 

 
 
당연히 알 필요가 있습니다.
 
특히나 C기반의 언어 또는 Java를 배우고 있는 사람들이라면 반드시 거쳐야하는 과목입니다.
 
 
자료구조를 알기전에...
 
현재 우리가 사용하고 컴퓨터는 폰노이만이 설계한 프로그램 내장 방식입니다.
 
즉, 컴퓨터를 이용하여 어떤 문제를 해결하고자 할 때, 반드시 프로그램이 필요하고
 
그 프로그램이 주기억 장치에 내재 되어야만 컴퓨터가 이 프로그램을 실행하여 문제를 해결할 수 있습니다.
 
 
일반적으로 입력으로 문제에 대한 자료를 주면 컴퓨터가 처리하여 문제에 대한 해답으로
 
그 결과를 출력으로 나타내도록 하거나 컴퓨터 내부에 저장하도록 합니다.
 
 
그럼, 알아야 하는 이유는 무엇일까?
 
실생활에서 사용하는 숫자나 문자, 특수문자 뭐 이런 자료들을 컴퓨터 내부에 저장될 때에는
 
여러가지 고려해야 될 사항이 있습니다.
 
 
예를들면 숫자같은 경우 8이란 숫자가 있는데 얘가 컴퓨터에 저장되려면
 
10진수인 8이 컴퓨터 내부에 저장된다기 보단 컴퓨터는 0과 1밖에 읽을 수 없기 때문에
 
2진법으로 저장되고 8을 2진수로 바꾸면 1000이 됩니다.
 
 
이렇게 실생활에서 사용하는것들은 컴퓨터 내부에 저장하여 처리하기 위해서는
 
표준화된 표현법이 필요합니다.
 
 
따라서, 자료주고는 문제 해결을 위한 이러한 자료의 공간 및 시간적 의미의 효율적 사용을 위하여
 
구조화한 것을 말합니다.
 
 
 
 
 
 [프로그래밍] 자료구조의 종류는 어떤게 있을까?
 

 
 
▶ 배열
 
같은 데이터형의 요소들이 동일한 크기로 순서를 갖고 나열되어 있는 집합을 말합니다.
 
 
 
▶ 리스트
 
선형 리스트라고 불리우는데 선형리스트는 어떤 순서에 의해 나열된 데이터가 여러 개인 구조를 말하고
 
말그대로 목록을 나타내며 다음과 같은 예가 선형리스트 입니다.
 
- 일요일, 월요일, 화요일, 수요일, 목요일, 금요일, 토요일 (한 주의 요일 목록)
 
- 빨강, 주황, 노랑, 초록, 파랑, 남색, 보라 ( 무지개 색 목록)
 
선형 리스트는 연속 리스트로 나뉘고 차이점은 다음 해당 포스트에서 설명드리도록 하겠습니다.
 
 
 
▶ 스텍
 
데이터의 삽입과 삭제가 한쪽 방향에서만 이러나는 구조를 말하며, 아래는 스택구조의 그림입니다.
 
(Last - In First - Out) (나중에온 데이터가 먼저 삭제된다는 뜻)
 
 
 
 
 
 
▶ 큐
 
한쪽 방향으로 데이터가 삽입되고 반대 방향으로 데이터가 삭제되는 구조이며,
 
아래는 큐구조의 그림입니다.
 
(FIFO : First - In First - Out) (처음들어온 데이터가 먼저 삭제된다는 뜻)
 
 
 
 
 
 
▶ 트리
 
나무를 뒤집은 모습으로 계층 구조를 표현하기에 적합한 구조이며, 아래 그림과 같습니다.
 
 
 
 
 
가장 위에 있는 동그라미를 루트노드라 부르고 이런 형식으로 되어 있습니다.
 
 
 
▶ 그래프
 
각 단위 정보를 정점으로 표현하고 각 정점들을 간선으로 연결하여 구조화 시킨 자료구조를 말합니다.
 
 
 
 
 
 [프로그래밍] 자료의 단위에 대해 알아보자!!
 

 
 
▶ Bit(비트)
 
0과 1로 나타내는데 0 또는 1의 한개 당 1bit(비트)라고 보면 됩니다.
 
 
 
▶ Nibble(니블)
 
4비트의 묶음을 말합니다. (4비트 = 1니블)
 
 
 
▶ Byte(바이트)
 
8비트의 묶음을 말합니다. (8비트 = 1바이트)
 
 
 
▶ Kbyte(킬로바이트)
 
1024 바이트의 묶음을 말합니다. (1024 바이트 = 1 킬로바이트)
 
 
 
▶ Mbyte(메가바이트)
 
1024 킬로바이트의 묶음을 말합니다. (1024 킬로바이트 = 1 메가바이트)
 
 
 
▶ Gbyte(기가바이트)
 
1024 메가바이트의 묶음을 말합니다. (1024 메가바이트 = 1 기가바이트)
 
 
 
▶ Tbyte(테라바이드)
 
1024 기가바이트의 묶음을 말합니다. (1024 기가바이트 = 1 테라바이트)
 
 
 
▶ 문자(character)
 
키보드에 있는 영어의 대소문자, 숫자 및 기타 특수문자를 말하는데 보통 7비트나 8비트로 나타냅니다.
 
 
 
▶ 단어(word)
 
컴퓨터 주기억 장치와 기타 장치(주로 CPU) 사이에 전송되는 비트의 모임을 말합니다.
 
 
 
 
 
 [C언어] 기본적인 자료의 종류에 대해 알아보자!!
 

 
 
▶ 수치 자료
 
컴퓨터에서 다루는 수치자료는 정수와 실수가 있고
 
2진법, 8진법, 16진법, 10진법 등 서로 다른 진법을 사용하기도 하며 그 표현 방법이 다양합니다.
 
 
 
▶ 문자 자료
 
컴퓨터가 나타내는 문자들이란 숫자, 영어 알파벳, 특수문자를 말하며,
 
이들이 서로 연속으로 연결된 것을 스트링이라고 합니다.
 
이러한 문자는 컴퓨터마다 표현방법이 다를 수 있고
 
일반적으로 7비트로 표현하는 ASCII 코드와 8비트로 표현하는 EBCDIC 코드를 많이 사용합니다.
 
 
 
▶ 스트링 자료
 
비수치적인 자료로 연속된  기억공간에 저장된 몬자들의 모임을 말합니다.
 
 
 
▶ 논리 자료
 
논리 자료란 참(true) 또는 거짓(false)의 두가지 중에서 하나만 갖는 자료를 말합니다.
 
 
 
▶ 포인터 자료
 
컴퓨터의 기억 장치에는 바이트 또는 단어 단위로 주소가 할당됩니다.
 
따라서 기억 장치에 저장된 자료는 그 위치에 대한 주소를 알 수 있고
 
이 주소를 가지고 자료를 읽고 쓰는 등 처리를 할 수 있습니다. 이것이 포인터 자료입니다.