목록배열 (2)
책 읽다가 코딩하다 죽을래
🤔 우린 한 번이라도 고민해본 적이 있지 않은가? 우리가 흔히 아는 배열은 다음과 같다 만약 c언어의 배열인 int sample[5] = [11,22,33,44,55]; 라는 배열이 있다고 생각해보자 그럼 첫번째부터 마지막까지 순서대로 나열되어 메모리에 할당된다는 것은 다 알고 있을 것이다. 여기서 중요한건 메모리에 들어가는 데이터 타입이 한 가지(정수를 나타내는 int는 4byte)로 통일되어있으니 모든 배열의 요소는 4바이트씩 할당되어 빈틈없이 연속적으로 나열된다. 즉 자료구조에서 말하는 배열은 동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열되는 자료구조이다. 우리는 이러한 배열을 밀집 배열(dense array)라 부른다. 하지만 자바스크립트의 배열은 다르다. const array = [ 's..
자료구조 중에서 자주 쓰이는 Array와 LInkedList를 서로 비교하겠다. 언어는 Python 기준으로 하겠다. (선언할 때 배열 크기를 정해야 하는 c++, 자바의 정적 배열과는 달리 Python의 배열은 동적 배열이다.) 다음 간단한 배열의 예를 들어보자 배열은 index와 데이터로 이루어져있다. index는 0으로부터 시작되어 데이터의 순서를 매기며 데이터는 int형부터 시작되어 그 어떤 데이터 타입도 들어갈 수 있다. 여기서 배열의 어떤 하나의 데이터에 접근하는데 걸리는 시간은 얼마나 소요될까? 정확히 말하자면 시간복잡도 O는 얼마일까? 답은 O(1)이다. 내가 접근하고 싶은 데이터가 배열의 맨 앞에 있는 뒤에 있든 중간에 있는 ary[0], ary[2], ary[4] 이런 식으로 단 한 번..