배열의 개념

안녕하세요. 아마 배열은 프로그래머들이 가장 자주 접하는 알고리즘 중에 하나이지 않을까 생각합니다. 자주 사용하지만 개념이 명확하지 않는 경우가 있습니다. 그래서 이번에는 배열의 주제로 글을 작성하게 되었습니다. 배열은 인덱스라는 주소로 되어있다고 보시면 됩니다. 시작은 인덱스 0부터 시작하고 그 안에 데이터를 넣을수 있습니다. 하지만 실제 배열이 램에 저장되어있는 주소가 있는데 000000번에서 4씩 증가하는 것을 볼수 있습니다. 이는 배열의 원소가 정수(int)일때 같은 바이트 만큼 띄어져서 저장됨을 알수 있습니다. 위 처럼 정수를 저장할수가 있습니다. 정수의 크기는 변하지 않기 때문에 각 배열의 원소로 충분히 들어갈수 있습니다. 인덱스만 알면 쉽게 해당 인덱스에 있는 원소값을 읽을수가 있습니다. 하지만 만약 중간에 일부 원소를 삭제해야 하는 상황이라면 번거로운 상황이 생깁니다. 인덱스2가 삭제되면 그 뒤의 모든 원소들이 삭제된 원소 만큼 1씩 올라가야 합니다. 위 예제는 5개의 원소가 존재하는 배열이지만 실제 프로그래밍 할때는 원소의 갯수가 훨씬 많습니다. 그렇기 때문에 마지막 인덱스를 제거하는 것이 아닌 중간 아니면 0번 인덱스를 삭제 혹은 추가하는 것이 프로그램을 무겁게 만들수가 있습니다.