ABOUT ME

Today
Yesterday
Total
choco@desktop:~/tistory
$ 정보처리기사 요점정리
1과목 2과목 3과목 4과목 5과목 실기

$ Linux Kernel
Power Management DVFS
  • 왜 파이썬은 0<= 숫자 인덱스 < n 을 사용할까?
    자료구조&알고리즘 2019. 1. 9. 10:28

    출처 알고리즘 책 1권 52페이지


    숫자 인덱스

    - 대부분의 프로그래밍 언어에서 n개의 원소를 갖는 배열 a의 첫번째 원소는 a[0]이고, 마지막 원소는 a[n-1]입니다. 따라서 a의 인덱스 i의 범위는 0<= i < n 입니다.

    - C++ STL에서는 반복자로 범위를 표현할 때 첫 원소를 가리키는 반복자와 마지막 원소 다음 위치를 가리키는 반복자를 사용합니다. 예를 들어, STL 자료구조에서 모든 원소를 갖는 범위는 begin(), end()로 표현하는데, begin()은 첫 번째 원소를 가리키지만 end()는 마지막 원소가 아니라 마지막 원소 다음에 있는 가상의 원소를 가리킵니다.

    - 자바의 SortedSet 인터페이스는 범위를 fromElement와 toElement로 전달받는데, fromElement는 범위에 포함되지만 toElement는 포함되지 않습니다.

    - 파이썬에서는 배열의 일부를 a[4:8]과 같은 문법으로 잘라낼 수 있는데, 이렇게 잘라내면 a[4] 부터 a[7]까지를 포함하는 부분 배열을 만들 수 있습니다. 


    위와 같은 인덱스 범위의 장점

    이러한 선택에는 분명한 장점이 있습니다. 


    - 첫번째 값과 마지막 값이 같은 구간을 이용하면 텅 빈 구간을 쉽게 표현할 수 있습니다. [2, 2) 로 표현된 반 열린 구간은 2<= i <2 인 모든 i를 포함하므로 공집합이 됩니다.

    - 두 구간이 연속해 있는지를 쉽게 알 수 있습니다. 두 구간 [a, b)와 [c, d)가 연속해있는지를 보려면 b=c혹은 a=d인지만 확인하면 됩니다.

    - 구간의 크기를 쉽게 할 수 있습니다. [a, b)로 표현된 구간에 포함된 자연수의 수는 b-a가 됩니다.


    출처

    https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html


    숫자 인덱스 범위를 0<=n <n으로 사용하는 이유

    - 전체 숫자의 개수가 좌우 수를 뺀 값과 똑같다.

    The observation that conventions a) and b) have the advantage that the difference between the bounds as mentioned equals the length of the subsequence is valid.

    - 가장 작게 시작하는 숫자를 자연수가 아닌 수로 하면 보기에 좋지 않다/ 자연스럽지 않다.

    Exclusion of the lower bound —as in b) and d)— forces for a subsequence starting at the smallest natural number the lower bound as mentioned into the realm of the unnatural numbers. That is ugly, so for the lower bound we prefer the ≤ as in a) and c).

    - 상한선 숫자가 포함되면 전체 숫자 범위를 줄일 때 자연스럽지 않다.

    inclusion of the upper bound would then force the latter to be unnatural by the time the sequence has shrunk to the empty one.

    반응형

    댓글

Designed by Tistory.