많은 텍스트 북에서 맨 위 병합 정렬은 랜덤 액세스의 이점을 고려한 배열로 수행됩니다.다른 데이터 구조와 병합 정렬 하시겠습니까?
다른 데이터 구조로 병합 정렬을 수행하는 방법이 있는지 궁금합니다. 데이터가 대기열 또는 스택에 저장되어 있다고 가정하면 대기열/스택에서 병합 정렬을 수행하여 최대 보조 대기열/스택을 추가 할 수 있습니까?
내 관심사는 임의 액세스가 없기 때문에이 경우 정렬을 병합해도 O (n 로그인) 효율에 도달 할 수 있다는 것입니다.
O (* n * lg * n *) 시간에 연결된 목록에서 병합 정렬을 수행 할 수 있습니다. 사실, 링크드 목록 정렬 알고리즘 AFAIK입니다. –
병합 정렬에 임의 액세스가 필요하지 않으므로 주 관심사가 무엇인지 잘 모릅니다. –
@KarolyHorvath하지만 배열 버전에서 반으로 배열을 분할하는 것은 확실히 임의 액세스 권한이 필요합니까? 내 말은 연결된 목록에서 중간에 도달하기 위해 몇 가지 트릭을 사용할 수 있지만 O (n) 시간이 걸리는 것입니까? – Enzo