Array

Siwoo Pak·2021년 5월 16일
0

자료구조&알고리즘

목록 보기
3/38

배열(array)

  • 어떤 자료의 값들을 모아놓은 자료구조.
  • 각각의 자료들, 우리가 여러개의 자료를 모아서 array로 생성해 놓으면 각각의 인덱스로 접근할 수 있는 자료구조.
  • 프로그래밍 언어마다 인덱스의 시작번호가 0인 곳도 있고, 1인 곳도 있음.

시간복잡도

  • 데이터 구조의 오퍼레이션 혹은 알고리즘이 얼마나 빠르고 느린지 측정하는 방법.

  • 얼마나 많은 단계가 있는가로 측정

  • 휘발성 메모리 vs 비휘발성 메모리

    • 비휘발성 메모리는 컴퓨터의 하드드라이브
    • 휘발성 메모리는 램(프로그램실행이나 변수 저장)
  • js, python은 자동으로 크기 조절해줌

  • 메모리상에서 배열의 모습

reading

  • 길이가 4인 배열의 모습
  • 배열의 각 인덱스의 값이 할당되었을 때
  • 생일선물처럼 박스를 열기 전까지 무엇이 들어있는지 알수 없는 것처럼 배열도 값을 찾을려면 인덱스를 통해서 열기 때문. 그래서 원하는 값을 찾을려면 처음부터 끝까지 검색해야 하기 때문에 시간이 올래 걸린다. 인덱스의 처음부터 끝까지 검색하는 선형 검색이라고 함

Insert(add)

  • 배열을 만들 때는 미리 공간을 확보해야함
  • 요소를 배열의 끝에 추가하는 경우
  • 요소를 배열의 요소 사이에 추가하는 경우

  • 요소를 배열의 첫 인덱스에 추가하는 경우
    • 배열의 모든 요소를 뒤로 한칸씩 이동시키고 맨 앞의 추가
    • 이럴 경우 배열의 크기가 크다면 속도가 엄청 느려진다.
  • 배열의 크기가 5인데 그 이상의 요소를 넣고 싶다면
    • 더 큰 배열을 생성해서 그 안에 배열을 복사하기 때문에 이것 또한 시간이 엄청 걸림.

Delete

  • 추가와 반대의 경우라고 생각하면 된다.
  • 배열의 요소는 추가를 하기 위해 공간을 만들고 할당한다면,
  • 삭제는 배열의 요소를 삭제하고 그 빈공간을 채우기 위해 그 공간으로 인덱스의 값들이 하나씩 움직인다.

출처 - 노마드코더 Array 배열 기초개념?

profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글