알고리즘의 특징
ㅇ (입력,출력) - 입력은 없을수도 있으나, 출력은 반드시 하나 이상 생성되어야함
ㅇ (유한성, Finiteness) - 한정된 수의 작업 후에는, 반드시 유한시간 내에 종료해야 함
ㅇ (명확성, Definiteness) - 각 단계는 단순 명확해야하며, 모호하지 말아야 함
ㅇ (유효성, Effectiveness) - 모든 명령들은 실행가능해야 함
※ 이상의 것들은, 미국 스탠포드대학 Knuth 교수가 제시 함 ("The Art ofComputerProgramming")
ㅇ (결정성, Determinisim) - 매 단계 마다, 입력과 바로 전 단계의 결과에 따라 유일하게 결정됨
ㅇ (일반성, Generality) - 특정 입력값들 만 아니라 요구되는 모든 입력에도 적용 가능
ㅇ (효율성,Efficiency) - 알고리즘은 가능한 효율적이어야 함
복잡도
알고리즘의 성능을 객관적으로 평가하는 기준을 복잡도(complexity)라고 한다.
알고리즘의 표현 방법
사람이 사용하는 국어나 영어와 같은 언어를 이용해 나타내는 방법
주어진 문제를 해결하거나 업무를 처리할 때, 처리할 일의 순서를 한 단계씩 구분하여 약속된 도형으로 표현한 그림
자연어로 표현한 것을 연상 기호 등을 사용하여 쉽고 간단하게 문제의 처리 과정을 표현한 것
A <- 1 // A에 1을 저장한다.
B <- 1 // B에 1을 저장한다.
SUM <- A+B // A와 B를 더한 것을 SUM에 저장한다.
if(A>B)
then print A //A가 B보다 크면 A를 출력한다.
else print "감자"//아니라면 "감자"를 출력한다.
Java, C언어, C++ 등을 이용하여 나타낸 것
public class Main {
public Main(){
int a = 1;
int b = 1;
System.out.println(a);
if(a > b){
System.out.println(b);
}
}
public static void main(String[] args) {
// write your code here
new Main();
}
}
< [5, 2, 13, 1, 8] 에서 1을 검색하는 과정 >
https://t1.daumcdn.net/cfile/tistory/2726B2355757B93531
public static int LinearSearch(int[] arr, int find) {
for (int i = 0; i < arr.length; i++) {
// 찾는 값이 배열에 있으면
// 그것의 위치를 반환함.
if (find == arr[i]) {
return i;
}
}
// 찾는 값이 없음.
return -1;
}
오늘은 간단한 게시판을 구현해봤다, 어려웠다.
복습만이 살길이다!!