Array 배열

Jisoo Yu·2022년 12월 11일
1

21년, 노션에 정리했던 노마드코더 알고리즘 강의 요약노트

  • Time complexity : 데이터구조의 오퍼레이션 혹은 알고리즘이 얼마나 빠르고 느린지 측정하는 방법
    • 시간단위로 하는게 아니라 얼마나 많은 단계가 있는가로 측정
  • 메모리 - 휘발성메모리(컴퓨터 끄면 사라지는 데이터(RAM), 비휘발성메모리(하드드라이브)
  • 프로그램이 돌아갈떄 모두 RAM에 저장 >> Random Access Memory
    • 배열의 길이가 얼만큼인지 직접 알려줘야함 (C언어)
    • 파이썬이나 자바스크립트의 경우 알아서 컴터한테 알려줌

✔️Operation1. Reading

  • 배열을 어떻게 읽는가 배열은 0부터, 위치만 알면 금방 찾을 수 있음
  • 배열에서 데이터를 꺼내는것은 빠름! 왜냐면 컴퓨터는 배열이 어디서 시작하는지를 알고있으니까
  • 많은 데이터를 읽을땐 배열이 짱임(Random Access덕분) index에 접근하는건 step수가 똑같거등
  • 검색의 경우 좀 다름, 하나하나 찾아봐야함
  • Linear Search : 선형 0부터 끝까지 하나하나 열어보는거

✔️Operation3. Insert (Add)

  • 메모리공간을 미리 확보해둬야함. 배열길이 미리 알려줘야함
  • 배열 끝에 넣는건 별 문제 없음 (best), 최악은 맨 앞에 삽입할때.. 기존에 있던 모든 배열 데이터를 한칸씩 뒤로 밀어줘야함.. 배열의 크기가 크다면?!! 👎
  • 또다른 최악! 만약에 기존에 확보해둔 배열공간이 꽉 찼는데 추가해야할때! 이때는 새로 만들고.. 기존꺼 복사해서 넣고 그다음에 새로운 데이터를 삽입해야함..

✔️Operation4. Delete

  • 젤 끝에있는거 삭제 쉬움!
  • 중간꺼 삭제할땐 중간꺼 삭제하고 공백생긴걸 채워주기위해 다 옮겨야함.. 최악은 첫번째꺼 삭제할때.. 전부다 옮겨야하니까!

배열은 읽을땐 최고 개빨름
근데 검색하고 추가하고 삭제하려면 느려짐
고로 배열에서 위같은 작업하려면 맨끝에서 작업하는것 추천!

profile
꽤 행복한 사람😎

0개의 댓글

관련 채용 정보