원래 배열은 방 갯수를 미리 예약해야 한다! 마치 라잌 Java처럼
JavaScript, Python은 얘네들이 대신 해줌 (그래서 편함)
배열은 방 갯수를 예약하고, 0부터 방의 인덱스를 붙이기 때문에
인덱스 넘버를 안다면 호로록 가져올 수 있다
많은 자료를 읽어와야 한다면 배열이 짱 (인덱스번호만 알면 되기 때문에!)
Reading과 Search의 차이점은 Search는 내가 인덱스 번호를 모를수도 있다는 것이다
(가령, 그 안에 값은 아는데 어디에 있는지를 모름)
이러면 하나씩 값이 맞는지를 확인해줘야함 > 시간이 겁나 걸림!
만약에 내가 찾는 값이 배열의 초반에 있으면 빨리 찾겠지만
만약에 맨 끝에 있거나 값이 아예 없을 때는 한~~참 걸림
이런 방식을 선형 검색(Linear Search) 이라고 한다
아까 말했다시피, 배열은 일단 방 갯수를 예약해야 하는데
여기서 값이 다 들어가있지 않은 경우
나중에 값을 추가(Insert) 해줄 수 있다
가장 쉬운 경우
그냥 맨 뒤에 넣어주면 된다
배열의 크기가 클수록 난감해짐
맨 앞에 추가하게 되면 그 안에 있던 기존 값들을 한 칸씩 다 뒤로 미뤄야 함
배열은 아까도 말했다시피 방 갯수가 미리 정해져 있는 구조라,
마음대로 방 갯수를 늘리고 줄일 수 없음
이럴 때는 더 큰 배열을 새로 만든 후,
기존 배열에서 값들을 복사해와야 비로소 값을 추가할 수 있다
추가랑 비슷함
가장 쉬움
걍 지우면 된다
중간 값을 지워버리게 되면 공백이 생김
근데 배열에는 중간 공백이 있으면 안됨!!!
빈 공간을 뒤에 있는 값들로 하나씩 땡겨온다
첫 번째 값을 지우고 그 뒤에 값들을 한칸씩 다 옮겨야 함
해당 포스팅은 노마드 코더의 알고리즘, 데이터구조 with Nico의 내용을 정리한 것입니다!