CS50

CS50

[ CS 50 ] 시간복잡도와 Big-O 표기법

시간 복잡도시간 복잡도란 알고리즘을 수행할 때 걸리는 시간을 기준으로 효율성을 분석하는 것입니다. 시간의 효율성이란 결국 알고리즘에서 비교와 교환 등이 일어날 때 연산자의 처리 횟수가 적다는 의미이며, 연산자의 처리 횟수가 적다는 건 시간의 복잡도가 낮다는 의미입니다. 따라서 시간 복잡도가 낮을수록, 연산자의 사용 횟수가 적을수록 효율성이 높은 알고리즘이 됩니다. Big-O 표기법Big-O notation is a way of converting the overall steps of an algorithm into algebraic terms, then excluding lower order constants and coefficients that don’t have that big an impact o..

CS50

[ CS50 ] 선형 탐색

선형 탐색선형탐색은 원하는 원소가 발견될 때까지 처음부터 마지막 자료까지 차례대로 탐색합니다. 이렇게 하여 선형 탐색은 찾고자 하는 자료를 찾을 때까지 모든 자료를 확인해야 합니다.효율성 그리고 비효율성선형 탐색 알고리즘은 정확하지만 아주 효율적이지 못한 방법입니다. 리스트의 길이가 n이라고 했을 때, 최악의 경우 리스트의 모든 원소를 확인해야 하므로 n번만큼 실행됩니다. 여기서 최악의 상황은 찾고자 하는 자료가 맨 마지막에 있거나 리스트 안에 없는 경우를 말합니다. 만약 100만 개의 원소가 있는 리스트라고 가정해본다면 효율성이 매우 떨어짐을 느낄 수 있습니다. 반대로 최선의 상황은 처음 시도했을 때 찾고자 하는 값이 있는 경우입니다. 평균적으로 선형 탐색이 최악의 상황에서 종료되는 것에 가깝다고 가정..

CS50

[ CS50 ] 의사코드

의사코드컴퓨터 프로그램은 프로그래밍 언어로 작성됩니다. 프로그래밍 언어는 일반적으로 기계가 알아들을 수 있도록 명령을 내리기 위해 사용되는 언어입니다. 프로그래밍 언어는 특정한 문법에 의해 작성된 코드를 요구합니다. 알고리즘을 표현하는 방법으로는 자연어(natural language), 의사 코드(Pseudocode), 순서도(flowchart )등이 있습니다. 의사 코드는 프로그래밍 언어보다 문법적 제약을 적게 받으므로 알고리즘 표현에 많이 사용됩니다. 의사코드의 예시방 안에 있는 사람의 수를 세기 위한 알고리즘을 만들어야 한다고 생각해 봅시다. 우리는 숫자 0부터 시작할 것이고 방 안에 있는 각각의 사람을 셀 때마다 1씩 더할 것입니다.왼쪽의 의사 코드에서 첫 번째 블록이 이 개념을 표현하고 있습니다..

CS50

[ CS50 ] 알고리즘

알고리즘컴퓨팅은 입력을 받아 그 입력을 처리한 후 출력하는 과정입니다. 알고리즘은 입력에서 받은 자료를 출력형태로 만드는 처리 과정을 뜻합니다. 즉, 알고리즘이란 입력값을 출력값의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적 나열입니다. 이러한 일련의 순서적 규칙들의 나열 방법에 따라 알고리즘의 종류가 달라집니다. 같은 출력값이라도 알고리즘적 순서 나열에 따라 출력값에 도달하는 시간은 서로 다를 수 있습니다. 정확한 알고리즘 (정확성)알고리즘은 입력을 출력으로 바꾸기 위해 컴퓨터가 따르는 일련의 절차입니다. 알고리즘은 우리의 일상생활 언어로도 표현할 수 있습니다. 절차를 순서대로나열한 목록처럼 말입니다.예를 들어, 전화번호부에서 Mike Smith를 찾는 일을 한다고 합시다..

CS50

[ CS50 ] 인공지능

인공지능2016년 봄, 이세돌과 알파고의 대국으로 인공지능에 대한 관심이 크게 일었습니다. 인공지능은 컴퓨터 과학의 개념이 세계적으로 영향을 미칠 수 있다는 것을 보여주는 사례입니다.  자연어 처리자연어란 인간이 일상적으로 사용하는 언어입니다. 인간이 평소에 사용하는 언어이기 때문에 같은 의미라도 표현 방법이 다양한 것이 특징입니다. 컴퓨터는 기계어를 사용하기 때문에, 명령을 내리기 위해서 규칙이 정해져 있는 프로그래밍 언어를 이용합니다. 컴퓨터가 사람의 언어를 기계적으로 분석하여 컴퓨터가 이해할 수 있는  형태로 바꾸어 처리하는 것을 자연어 처리라고 합니다. ELIZA와 같이 문장 전체를 이해하기 보다 구와 절로 나누어 사용된 단어의 조합으로 의미를 파악하는 것 역시 자연어 처리의 일부입니다. 음성인식..

CS50

[ CS50 ] 이미지

이미지이미지는 여러 가지 파일 유형으로 저장됩니다. 보통 우리가 많이 볼 수 있는 이미지 파일 형식으로는 비트맵(.bmp), JPG(.jpg), PNG(.png), GIF(.gif) 등이 있습니다. 이 외에도 다양한 이미지 파일 유형들이 있는데, 각각의 파일 유형들에는 장점과 단점이 있습니다. 어떤 파일 유형으로 저장하는가에 따라 이미지 파일이 더 크거나 작을 수 있고, 더 선명하거나 그렇지 않을 수 있습니다. 사진 파일에 들어있는 정보사진을 찍어 이미지에 저장하면 그 이미지는 보통 JPEG라는 확장자를 갖게 되고 이미지를 압축하여 저장합니다. 윈도우에서 많이 볼 수 있는 파일 형식에는 BMP도 있습니다. 하나의 이미지를 다양한 이미지 파일 형식으로 저장할 수 있는데, 저장되는 형식에 따라 파일 안에 들..

Sheep1sik
'CS50' 카테고리의 글 목록