ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS50] Computer Science Week3 Lecture
    MOOC/edx.org 2015. 4. 1. 01:58
    반응형

    argc에 관한 설명, 배열

     

    배열과 메모리에 대해서 다루는데 프로그램을 작성하면서 메모리 참조를 잘못하였을 때 어떻게 프로그램이 작동되는가, 그리고 그렇게 프로그램을 작성하였을 때 어떤 문제점이 발생할 수 있는가에 대한 설명

     

    운영체제가 각자의 프로그램에 메모리를 할당하는데 프로그램에서 잘못된 메모리 주소를 참조하였을 때에는 이미 사용 중인 메모리에 접근이 가능해서 위험한 상황이 발생할 수 있다. (일반적으로는 오류를 출력하지만 의도된 메모리 참조 값을 요구하는 프로그램의 경우 보안상 위험해질 수 있다.)

     

    특히 C언어의 경우 메모리에 직접 접근이 가능하여 특히나 더 위험

    웹의 경우에도 이러한 기법으로 해킹이 이루어지는 경우가 있다.

     

    이러한 상황을 막으려면 어떻게 해야 하는가

     

    프로그램 작성 시 예외를 두어 프로그램이 잘못된 메모리를 참조하더라도 오류를 출력하지 않게 만들 수 있다.

    ex) 옳은 값 작성 시 return 0; , 비정상적인 값 작성 시 return 1;

     

    원하는 값을 찾는 방법

    ex ) 전화번호부 찢기로 불필요한 데이터를 제외하여 빠르게 찾기 가능

     

    버블 정렬에 관한 설명

    : 왼쪽부터 값을 비교하여 큰 값들을 오른쪽으로 보내는 방법을 반복하여 작은 숫자를 앞으로 큰 숫자를 뒤로 보낼 수 있다.

     

    선택 정렬에 관한 설명

     

    주어진 리스트 중에 최솟값을 찾는다.

     

    : 그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)).

    맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.

    비교하는 것이 상수 시간에 이루어진다는 가정 아래, n개의 주어진 리스트를 이와 같은 방법으로 정렬하는 데에는 Θ(n2) 만큼의 시간이 걸린다.

     

    삽입 정렬에 관한 설명

    : 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다.


    그 외에도 몇가지 정렬 방법에 대하여 설명하였다.


    수강후기

    C에 대해서 복습한다는 의미의 느낌이 많이 들었다. 배열 등등.. 그리고 정렬에 관한 설명을 굉장히 재미있게 설명하는것같다. 정렬이 왜 필요한지에 대해서 설명하는것 같았는데 전에 정보처리기사 공부를 하면서 공부했던 내용들도 몇가지 나와서 신기하였다. 그리고 오늘부로 다시 정리를 시작하였는데 최대한 빠르게, 정확히, 짧게 공부할 생각이다.

    반응형

    댓글

Designed by Tistory.