편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
803번째 줄: | 803번째 줄: | ||
=== 문자열 === | === 문자열 === | ||
문자 여러 개가 나열되어 있는 것으로, 보통 배열로 표현한다. C에서, 문자열의 끝은 특정 문자(NULL, ASCII 0번 문자)로 정해져 있다. Java에서는 아예 기본 자료형으로 제공된다. | 문자 여러 개가 나열되어 있는 것으로, 보통 배열로 표현한다. C에서, 문자열의 끝은 특정 문자(NULL, ASCII 0번 문자)로 정해져 있다. Java에서는 아예 기본 자료형으로 제공된다. | ||
== 알고리즘을 설계하는 일반적인 방법 == | |||
=== <del>[[아몰랑]]</del> 바보처럼 무식하게 === | |||
컴퓨터의 [[크고 아름다운]] 우월한 성능을 이용하여 모든 경우의 수를 시도하는 방법이다. 이 방법을 전문용어로 완전탐색 알고리즘이라고 한다. | |||
문제를 쓸데없이 어렵게 접근하여 골치아파하지 말고 이 방법을 가장 먼저 적용하자. 이 방법도 나쁜 방법이 아니며, 준수한 성능을 내는 알고리즘을 설계할 수 있는 좋은 방법이다. | |||
=== 최적화 문제와 결정 문제 === | |||
=== 분할 정복 === | |||
=== 동적 계획법 === | |||
==== 재귀적 방법 ==== | |||
==== 반복적 방법 ==== | |||
=== 탐욕법 === | |||
그리디 알고리즘 또는 욕심쟁이 알고리즘 등으로도 불리운다. 현재 봤을 때 가장 최적해같아 보이는 것을 선택하는 알고리즘이다. 근사해를 구할 때 쓰이면 가장 좋으나, 최적해를 구할 때에는 역추적을 해야만 한다. 가장 사람을 잘 흉내내는 알고리즘이다.{{--|이런 욕심쟁이들.}} | |||
그리디 알고리즘을 사용하기 위해서는 정렬이 된 자료가 필요하다. | |||
=== 조합 탐색 === | |||
== 기초 정렬 알고리즘 == | == 기초 정렬 알고리즘 == |