-
[CS50] Computer Science Week3 LectureMOOC/edx.org 2015. 4. 1. 01:58반응형
argc에 관한 설명, 배열
배열과 메모리에 대해서 다루는데 프로그램을 작성하면서 메모리 참조를 잘못하였을 때 어떻게 프로그램이 작동되는가, 그리고 그렇게 프로그램을 작성하였을 때 어떤 문제점이 발생할 수 있는가에 대한 설명
운영체제가 각자의 프로그램에 메모리를 할당하는데 프로그램에서 잘못된 메모리 주소를 참조하였을 때에는 이미 사용 중인 메모리에 접근이 가능해서 위험한 상황이 발생할 수 있다. (일반적으로는 오류를 출력하지만 의도된 메모리 참조 값을 요구하는 프로그램의 경우 보안상 위험해질 수 있다.)
특히 C언어의 경우 메모리에 직접 접근이 가능하여 특히나 더 위험
웹의 경우에도 이러한 기법으로 해킹이 이루어지는 경우가 있다.
이러한 상황을 막으려면 어떻게 해야 하는가
프로그램 작성 시 예외를 두어 프로그램이 잘못된 메모리를 참조하더라도 오류를 출력하지 않게 만들 수 있다.
ex) 옳은 값 작성 시 return 0; , 비정상적인 값 작성 시 return 1;
원하는 값을 찾는 방법
ex ) 전화번호부 찢기로 불필요한 데이터를 제외하여 빠르게 찾기 가능
버블 정렬에 관한 설명
: 왼쪽부터 값을 비교하여 큰 값들을 오른쪽으로 보내는 방법을 반복하여 작은 숫자를 앞으로 큰 숫자를 뒤로 보낼 수 있다.
선택 정렬에 관한 설명
주어진 리스트 중에 최솟값을 찾는다.
: 그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)).
맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.
비교하는 것이 상수 시간에 이루어진다는 가정 아래, n개의 주어진 리스트를 이와 같은 방법으로 정렬하는 데에는 Θ(n2) 만큼의 시간이 걸린다.
삽입 정렬에 관한 설명
: 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다.
그 외에도 몇가지 정렬 방법에 대하여 설명하였다.
수강후기
C에 대해서 복습한다는 의미의 느낌이 많이 들었다. 배열 등등.. 그리고 정렬에 관한 설명을 굉장히 재미있게 설명하는것같다. 정렬이 왜 필요한지에 대해서 설명하는것 같았는데 전에 정보처리기사 공부를 하면서 공부했던 내용들도 몇가지 나와서 신기하였다. 그리고 오늘부로 다시 정리를 시작하였는데 최대한 빠르게, 정확히, 짧게 공부할 생각이다.
반응형'MOOC > edx.org' 카테고리의 다른 글
[CS50] edX Verified Certificate 발급 완료 (0) 2016.04.17 [CS50] Computer Science Week1 Problem Set 1: C (0) 2015.02.03 [CS50] Computer Science Week0 Problem Set 0: Scratch (0) 2015.01.21 [CS50] Computer Science Week1 Lecture, Continued (2) 2015.01.16 [CS50] Computer Science Week1 Lecture (0) 2015.01.16