ArrayMax(list,n)
배열 list의 첫번째 요소를 변수 tmp에 복사
배열 list의 다음 요소들을 차례대로 tmp와 비교하면서 더크면 tmp로 복사
배열 list의 모든 요소를 비교했으면 tmp를 반환
흐름도로 표기된 알고리즘
직관적이고 이해하기 쉽지만, 복잡한 경우 표현이 상당히 복잡해진다.
출처 : https://codingisgame.tistory.com/10
유사코드로 표현된 알고리즘
알고리즘 기술에 가장 많이 사용 된다, 프로그램을 구현할때 알고리즘 이외의 내용을 생략하고 알고리즘의 핵심적인 내용에만 집중 할 수 있다.
ArrayMix(list, N);
largest<-list[0]
for i<-1 to N-1 do
if list[i]>largest
then largest<-list[i]
return largest
프로그래밍언어로 표현된 알고리즘
알고리즘의 정확한 기술이 가능하지만, 실제 구현시 많은 알고리즘에 필요없는 사항들이 핵심적인 내용의 이해를 방해할수 있다.
#define MAX_ELEMENTS 100;
int score[MAX_ELEMENTS];
int find_max_score(int n){
int i,tmp;
tmp=score[0];
for(i=;i<n;i++){
if(score[i] > tmp){
tmp = score[i];
}
}
}
개인적으로 프로그래밍 언어는 바로 구현이 가능해서 어떤 결과가 리턴되는지 알기 쉬어 나름의 장단점이 있는거 같다. 알고리즘 구조가 크게되면 직접 전달해주는 사람은 이거 짜느라 머리 아파서 효율적으론 힘들지 모르겠지만.... 생각해보니 받는사람도 이게 길어지면 흐름도랑 다를거 없이 머리 아플거 같은건 매한가지..
# 자료구조와 알고리즘의 관계는 무엇일까
"프로그램 = 자료구조 + 알고리즘"
자료구조와 알고리즘은 프로그램을 작성할때 연관성이 있는데, 이떄 알고리즘은 넘겨받은 데이터(자료)를 가공하는 방법을 나타내고 자료구조는 이 넘겨 주는 데이터조직의 표현 방법을 나타낸다.
이를 가볍게 일상생활에 비유하면, 블럭 조립을 할때 필요한 블럭의 재료, 모양을 자료구조, 이 블럭을 조립하는 방법과 과정을 알고리즘으로 비유할 수 있다.
1주차 첫번째 교시 자료구조 정리하면서 느낀점 : 감각적으로 알고있는 사람이나 이전 고등, 중등 수업때 들었을 수도 있는 알고리즘과 자료구조의 관계를 다시보는 시간이였다. 간단히 생각하면 알고리즘 + 자료구조 = 프로그램 이라 연관성 지어서 생각하면 될거 같은 느낌이다.