ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [배열/array] 배열 자료구조
    👾 알고리즘 2022. 8. 6. 23:09

    배열(Array)이란 ? 

    -데이터를 나열하고, 각 데이터에 인덱스를 부여해서 관리하는 데이터 구조 

    -파이썬에서는 리스트 자료구조가 배열에 해당 

     

    배열의 사용 이유, 장점과 단점 

    -배열은 같은 종류의 데이터를 순차적으로 저장해서 효율적으로 관리하려는 목적 !

    -배열의 장점 : 인덱스를 알면 해당 구조로 빠른 접근이 가능하다 (배열을 생성할때 배열의 첫번째 위치의 메모리 address를 함께 저장하기때문에, 나머지 요소들의 인덱스만 알면 간단한 덧셈으로 다른메모리 address를 바로 알수있으므로 O(1)에 접근 가능 - 즉 다시한번 이게 가능하려면 순차적으로 저장되었을때 가능하다는 점!) => 해쉬테이블과 자주 비교해서 언급되므로 제대로 알아두기 

    -배열의 단점: 데이터의 추가와 삭제시 자리를 만들거나/ 자리를 메우기 위해 많은 양의 shift를 해야하는 비효율적인 면이 있다. 

     

    데이터의 순차적인 저장이라는 면에서 array와 string은 같은 개념으로 접근할 수 있다. 

    (=> 코딩 인터뷰에서 string question은 array question으로 해석하자) 

     

    배열의 시간복잡도 (time complexity)

    =Analyzing the number of steps an operation takes is the heart of understanding the performance of data structures! 

     

    Read : looks up what value is contained at a particular index inside the array.

    -When a program declares an array, it allocates a contiguous set of empty cells in memory, and it also makes note at which memory address the array begins.

    - A computer can read any index by jumping to any memory address in one step.

     

    Search : looking to see whether a particular value exists within an array and if so, at which index it’s located.
    -
    a computer has immediate access to all of its memory addresses, but it has no idea offhand what values are

    contained at each memory address.

    -for N cells in an array, linear search would take a maximum of N steps.

     

    Insert : the process of inserting the value at a particular index.

    -The efficiency of inserting a new piece of data into an array depends on where within the array you’re inserting it.

    -insertions at the end of an array takes one step

    -inserting at the beginning or in the middle of an array is a different story. In these cases, we need to shift pieces of data to make room for what we’re inserting, leading to additional steps.

    -We can say that in a worst-case scenario - inserting at the beginning of the array can take N + 1 steps

     

    Delete : the process of eliminating the value at a particular index.

    - Like insertion, the worst-case scenario of deleting an element is deleting the very first element of the array. This is because index 0 would become empty, and we’d have to shift all the remaining elements to the left to fill the gap.

    '👾 알고리즘' 카테고리의 다른 글

    [stack&queue] LIFO and FIFO for temporary data  (0) 2023.01.05
    [Stack] 스택 concept & implementation  (0) 2022.07.19
Designed by Tistory.