일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- CleanCode
- AWS
- 인프런백기선
- 스프링부트와AWS로혼자구현하는웹서비스
- 기술면접
- AWS RDS
- MariaDB
- react
- 자바
- SQL쿡북
- mysql
- DDD
- 알고리즘분석
- 인프런김영한
- 자바예외
- 이펙티브자바
- 혼공SQL
- 자바스터디
- 이펙티브 자바
- 도메인 주도 개발 시작하기
- 네트워크
- 알고리즘
- vue.js
- jpa
- aop
- 클린코드
- 이팩티브 자바
- 자료구조
- java
- 인덱스
- Today
- Total
기록이 힘이다.
자료구조와 알고리즘 본문
프로그램 = 자료구조 + 알고리즘
알고리즘이 특정한 목적을 달성하기 위한 절차라고 한다면 자료구조는 알고리즘에 필요한 자료의 집합이다. 동일한 알고리즘이라도 자료구조가 달라지면 전혀 다른 프로그램이 될 수 있기 때문에 자료에 알맞은 자료구조를 만드는 것이 매우 중요하다. 작성된 알고리즘은 다양한 자료구조들을 포함할 수 있다.
자료구조(data structure)
1. 데이터를 효율적으로 표현하고 저장하기 위해 구조화하는 것
2. 자료의 사용 방법이나 성격에 따라 효율적으로 사용하기 위하여 조직하고 저장하는 방법
자료의 형태에 따른 분류
1. 단순 구조: 정수, 실수, 문자, 문자열
2. 선형 구조: 리스트, 연결 리스트, 스택, 큐, 데크
3. 비선형 구조: 트리, 그래프
4. 파일 구조: 순차 파일, 색인 파일, 직접 파일
알고리즘(algorithm)
1. 문제를 해결할 수 있는 잘 정의된 유한 시간 내에 종료되는 체계적인 절차
2. 주어진 문제를 해결하기 위한 문제 해결 과정을 묘사하는 것으로 절차와 방법, 명령 등을 명확하게 기술해 놓은 것
3. 컴퓨터에 정보를 어떻게 입력하고 입력된 정보를 어떻게 처리하며 처리된 결과를 어떤 형식으로 출력할 것인지에 관한 모든 문제를 총괄하는 개념
알고리즘의 요구조건
1. 입력: 외부에서 제공되는 0개 이상의 입력 데이터가 존재햐야 한다.
2. 출력: 입력값으로부터 적어도 하나 이상의 결과가 출력되어야 한다.
3. 명확성: 기술된 명령들이 애매모호하지 않고 명확해야 한다.
4. 유한성: 제한된 수의 명령 단계를 거친 후에는 반드시 종료해야 한다.
5. 유효성: 모든 명령은 실행 가능해야 한다.
알고리즘의 기술 방법
1. 영어, 한국어와 같이 사람이 사용하는 자연어
2. 순서도(flow chart)
3. 언어코드(pseudo code)
4. C언어, JAVA 등과 같은 프로그래밍 언어