배열 Array

2023. 4. 9. 11:00·코딩테스트 준비/자료구조
반응형

array

고정된 데이터 크기

연속된 데이터

선언된 배열에는 데이터가 저장된 메모리의 맨 첫번째 주소를 가지고 있게 된다.

배열의 타입에 따라서, 다음 데이터의 시작 위치를 알 수 있다.

int arr[5] = {1,3,4,6,8}

일때 arr[1] 을 꺼낸다고 하면, int 자료형은 4byte이므로, arr에 저장된 주소에서 4byte만큼의 크기만큼 더해서 그곳에서 4byte 만큼의 자료를 꺼내오게 된다. 그 값이 바로 3이된다.

RandomAccess

메모리에 저장된 데이터에 접근하기 위해서는 주소값을 알아야 한다. 배열 변수는 자신이 할당받은 메모리의 첫 번째 주소깂을 가진다. 배열은 연속적/순자척으로 저장되어있기 때문에, 첫 주소값만 알고 있다면 어떤 인덱스에서 즉시 접근이 가능하다. 이를 Direct Access 또는 Random Access라고 부른다. 배열의 경우 아무리 긴 배열이더라도 한 번의 연산으로 원하는 데이터에 바로 접근이 가능하다. 시간 복잡도가 그래서 O(1)이다

한계

선언시에 정한 size보다 많은 데이터를 저장해야 하는 경우 공간이 남아있지 않아서 문제가 발생할 수 있다. 그렇다고 크기가 엄청 큰 배열을 선언하면 그만큼 메모리를 많이 차지한다. 이런 문제점을 해결할 수 있는 것이 바로 dynamic array다


Uploaded by N2T

반응형

'코딩테스트 준비 > 자료구조' 카테고리의 다른 글

동적 배열 Dynamic Array  (1) 2023.04.09
배열의 코테 적용방법  (1) 2023.04.09
'코딩테스트 준비/자료구조' 카테고리의 다른 글
  • 동적 배열 Dynamic Array
  • 배열의 코테 적용방법
cvcvcx9
cvcvcx9
프로그래머
  • cvcvcx9
    참치와 연어가 좋아
    cvcvcx9
  • 전체
    오늘
    어제
    • 전체보기 (90)
      • JAVA (22)
        • 웹 프로그래밍 딥하게 파보기 (7)
        • String (2)
        • 자바의 다양한 객체 (3)
        • 클래스와 인터페이스, 추상클래스 (2)
        • 컬렉션과 자료구조 (6)
        • 제네릭 (0)
      • SPRING (3)
      • JPA 게시판 (19)
        • JPA게시판 만들기 (7)
        • JPA (10)
        • Spring Security (2)
        • 오류정리 (0)
      • 코딩테스트 준비 (4)
        • 자료구조 (3)
      • Python (21)
        • Django (21)
      • 컴퓨터 기초 (8)
        • 컴퓨팅사고 (7)
      • Web (7)
        • 유용한 설정 (6)
        • Git 관련 (1)
      • 데이터베이스 (1)
        • 친절한 SQL튜닝 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 인기 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
cvcvcx9
배열 Array
상단으로

티스토리툴바