링크드리스트에 대한 위키피디아 기사에 따르면 링크드리스트 중간에 삽입하는 것은 O (1)로 간주됩니다. 나는 그것이 O (n)이라고 생각할 것입니다. 목록의 끝 부분에있을 수있는 노드를 찾을 필요가 없습니까?
이 분석은 노드 작업의 발견 (필수적이지만)과 삽입 자체를 설명하지 않습니까?
수정 :
연결된 목록은 배열에 비해 몇 가지 장점이 있습니다. 목록의 특정 지점에 요소를 삽입하는 것은 일정한 시간 작업이지만 배열에 삽입하려면 요소의 절반 이상을 이동해야 할 수 있습니다.
위의 진술은 나에게 약간 오해의 소지가 있습니다. 내가 틀렸다면 정정하지만 결론은 다음과 같아야한다고 생각합니다.
어레이 :
- 삽입 / 삭제 지점 찾기 O (1)
- 삽입 / 삭제 수행 O (n)
연결된 목록 :
- 삽입 / 삭제 지점 찾기 O (n)
- 삽입 / 삭제 수행 O (1)
나는 당신이 위치를 찾을 필요가 없을 것이라고 생각한다 (어떤 경우에는 머리와 꼬리처럼) 당신이 그것에 대한 일종의 포인터를 유지하는 것입니다. 따라서 연결 목록이 항상 삽입 / 삭제 옵션에 대해 배열을 능가한다고 단호하게 말할 수는 없습니다.