Агуулгын хүснэгт:

Нэгтгэх нарийн төвөгтэй байдлыг хэрхэн тооцдог вэ?
Нэгтгэх нарийн төвөгтэй байдлыг хэрхэн тооцдог вэ?

Видео: Нэгтгэх нарийн төвөгтэй байдлыг хэрхэн тооцдог вэ?

Видео: Нэгтгэх нарийн төвөгтэй байдлыг хэрхэн тооцдог вэ?
Видео: 10. Байгууллагын бодлого ба Жендэрийн эрх тэгш байдал 2024, May
Anonim

2 хариулт. A[L, R] зангилааг хоёр зангилаа болгон хуваахад R−L+1 удаа дараа нь зарцуулагдана нэгтгэх хоёр хүүхэд зангилаа A[L, M] ба A[M+1, R] дахин A[R−L+1] хугацаа авна. Тиймээс зангилаа бүрийн хувьд үйлдлийн тоо алгоритм гүйцэтгэх нь тухайн зангилаатай харгалзах массивын хэмжээнээс хоёр дахин ихтэй тэнцүү байна.

Үүнтэй холбогдуулан нэгтгэх эрэмбэ хэрхэн ажилладаг вэ?

Нэгтгэх эрэмбэ нь хуваах ба ялахыг хэрхэн ашигладагийг эндээс үзнэ үү:

  1. p ба r хоёрын дундах байрлалын q тоог олох замаар хуваана.
  2. Хуваах алхамаар үүсгэсэн хоёр дэд асуудал тус бүрийн дэд массивуудыг рекурсив байдлаар эрэмбэлж байлдан дагуулаарай.
  3. Эрэмбэлэгдсэн хоёр дэд массивыг нэг эрэмбэлэгдсэн дэд массив болгон нэгтгэх замаар нэгтгэнэ.

Түүнчлэн, нэгтгэх сортын том O төвөгтэй байдал нь юу вэ? Эрэмбэлэх жүчээ юм ангилах Энэ нь массив дахь ижил элемент бие биенээсээ анхны байрлалаа хадгалдаг гэсэн үг юм. Нийт хугацаа нарийн төвөгтэй байдал -ийн Нэгтгэх төрөл байна О (nLogn). Энэ нь хамгийн муу тохиолдолд ажиллах хугацаа ч гэсэн илүү үр дүнтэй байдаг О (nlogn) Орон зай нарийн төвөгтэй байдал -ийн Нэгтгэх төрөл байна О (n).

Хамгийн муу тохиолдолд нэгтгэх төрлийн нарийн төвөгтэй байдал юу вэ?

n*log(n)

Нэгтгэсэн эрэмбэ нь хэр олон харьцуулалт хийдэг вэ?

Жагсаалтын аль нэг дэх элементүүд дуусмагц бид үлдсэн элементүүдийг жагсаалтын сүүлчийн үүрэнд хийнэ. эрэмбэлсэн жагсаалт. Үр дүнд нь, нэгтгэх Нийт n элементтэй хоёр жагсаалтад хамгийн ихдээ n-1 шаардлагатай харьцуулалт.

Зөвлөмж болгож буй: