이전 기사에 이어 이 기사에서는 배열 데이터 구조를 계산하는 프로세스를 살펴보고 이러한 작업과 관련된 단계를 계산합니다.
읽다
배열에서는 특정 인덱스에 한 번만 액세스하면 값을 확인할 수 있으므로 읽기 작업의 계산 단계는 다음과 같습니다.
레벨 1 보지 않았다.
첫째, 컴퓨터는 주소를 알고 있으면 한 번에 모든 메모리 주소에 액세스할 수 있습니다.
컴퓨터가 처음 배열을 만들 때 배열의 시작 메모리 주소를 별도의 메모리에 저장합니다.
읽기 요청을 받으면 별도의 프로세스 없이 접근할 스토리지 어레이의 시작 메모리 주소에 인덱스 값을 더한다.
찾다
Read는 인덱스를 제공하고 값을 검색하고 Search는 값을 제공하고 인덱스를 검색합니다.
구체적인 값의 위치를 알 수 없기 때문에 배열의 처음 메모리부터 순차적으로 확인합니다.
우리는하다 선형 검색그것은 알려져있다.
크기가 N인 배열에서 찾고 있는 값이 배열의 앞에 있으면 한 번에 찾을 수 있습니다.
N레벨지나갈 것이다.
끼워 넣다
데이터를 배열에 넣는 것은 삽입 작업의 첫 번째 단계입니다.
공백 끝에 삽입하면 삽입 작업을 한 번에 완료할 수 있습니다.
그러나 비어 있지 않은 공백을 삽입하는 것은 어떻습니까?
해당 인덱스를 지우려면 거기에 있는 요소를 뒤로 밀어야 할 뿐만 아니라 해당 인덱스 뒤에 있는 모든 요소를 1개 인덱스 뒤로 밀어야 합니다.
그런 다음 요소를 맨 앞으로 가져오면 배열의 모든 요소가 1 인덱스만큼 뒤로 이동합니다.
단계를 표현할 때 최악의 경우 먼저 배치하고, 단계를 표현하는 것은 크기 N의 배열에 있는 모든 요소를 이동(단계 N) + 배열에 삽입하는 작업(단계 1)입니다.
N+1 다양한 단계를 거치게 됩니다.
삭제
삭제는 삽입과 유사한 방식으로 작동합니다.
배열에서 데이터를 가져오는 것이 첫 번째 단계입니다.
그러나 배열의 메모리 주소는 연속적이어야 하므로 삭제로 인해 생긴 빈 공간을 채워야 합니다.
삽입할 때 뒤로 밀면 빼낼 때 앞으로 당겨 틈을 메웁니다.
마지막 요소를 제거하면 1단계로 끝나지만 최악의 경우 앞 요소를 제거하면 배열의 나머지 모든 요소를 앞으로 당겨야 합니다.
가장 앞에 있는 요소를 step으로 삭제하는 경우를 표현하고 크기가 N인 배열에서 삭제된 요소를 제거하고 남은 배열에서 제거(step 1) + N-1개의 요소 이동(step N-1) 건 아니요삭제는 단계적으로 이루어집니다.
결론적으로
이 기사에서는 배열 데이터 구조 작업에 대해 배웠습니다.
간단한 조작이지만 최선을 다해 알아보았는데 잘 전달이 되는지 궁금합니다.
연산별로 최악의 경우를 고려하는 이유는 데이터 구조간 연산의 성능을 비교할 때 가장 시간이 오래 걸리는 경우를 가정하여 비교하기 때문이다.
항상 좋은 글을 쓰도록 노력하겠습니다.
감사해요