Агуулгын хүснэгт:
Видео: Нэгтгэх нарийн төвөгтэй байдлыг хэрхэн тооцдог вэ?
2024 Зохиолч: Lynn Donovan | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2023-12-15 23:50
2 хариулт. A[L, R] зангилааг хоёр зангилаа болгон хуваахад R−L+1 удаа дараа нь зарцуулагдана нэгтгэх хоёр хүүхэд зангилаа A[L, M] ба A[M+1, R] дахин A[R−L+1] хугацаа авна. Тиймээс зангилаа бүрийн хувьд үйлдлийн тоо алгоритм гүйцэтгэх нь тухайн зангилаатай харгалзах массивын хэмжээнээс хоёр дахин ихтэй тэнцүү байна.
Үүнтэй холбогдуулан нэгтгэх эрэмбэ хэрхэн ажилладаг вэ?
Нэгтгэх эрэмбэ нь хуваах ба ялахыг хэрхэн ашигладагийг эндээс үзнэ үү:
- p ба r хоёрын дундах байрлалын q тоог олох замаар хуваана.
- Хуваах алхамаар үүсгэсэн хоёр дэд асуудал тус бүрийн дэд массивуудыг рекурсив байдлаар эрэмбэлж байлдан дагуулаарай.
- Эрэмбэлэгдсэн хоёр дэд массивыг нэг эрэмбэлэгдсэн дэд массив болгон нэгтгэх замаар нэгтгэнэ.
Түүнчлэн, нэгтгэх сортын том O төвөгтэй байдал нь юу вэ? Эрэмбэлэх жүчээ юм ангилах Энэ нь массив дахь ижил элемент бие биенээсээ анхны байрлалаа хадгалдаг гэсэн үг юм. Нийт хугацаа нарийн төвөгтэй байдал -ийн Нэгтгэх төрөл байна О (nLogn). Энэ нь хамгийн муу тохиолдолд ажиллах хугацаа ч гэсэн илүү үр дүнтэй байдаг О (nlogn) Орон зай нарийн төвөгтэй байдал -ийн Нэгтгэх төрөл байна О (n).
Хамгийн муу тохиолдолд нэгтгэх төрлийн нарийн төвөгтэй байдал юу вэ?
n*log(n)
Нэгтгэсэн эрэмбэ нь хэр олон харьцуулалт хийдэг вэ?
Жагсаалтын аль нэг дэх элементүүд дуусмагц бид үлдсэн элементүүдийг жагсаалтын сүүлчийн үүрэнд хийнэ. эрэмбэлсэн жагсаалт. Үр дүнд нь, нэгтгэх Нийт n элементтэй хоёр жагсаалтад хамгийн ихдээ n-1 шаардлагатай харьцуулалт.
Зөвлөмж болгож буй:
Примийн алгоритмын цаг хугацааны нарийн төвөгтэй байдал хэд вэ?
Примийн алгоритмын цагийн нарийн төвөгтэй байдал нь O ((V + E) l o g V) учир орой бүрийг тэргүүлэх эгнээнд зөвхөн нэг удаа оруулж, тэргүүлэх эгнээнд оруулахад логарифмын хугацаа зарцуулдаг
Аль эрэмбэлэх алгоритм нь хамгийн сайн асимптот нарийн төвөгтэй байдаг вэ?
Нуруулдан эрэмбэлэх
Сансрын нарийн төвөгтэй байдлыг хэрхэн тооцоолох вэ?
Туслах зай: оролтын хэмжээтэй холбоотой асуудлыг шийдвэрлэхийн тулд таны алгоритмаар хуваарилсан түр зуурын зай (оролтын хэмжээг тооцохгүй). Сансрын нарийн төвөгтэй байдал нь туслах орон зай болон оролтод ашигладаг орон зайг хоёуланг нь агуулдаг. Орон зайн нарийн төвөгтэй байдал = Оролтын хэмжээ + Туслах зай
Цикломат нарийн төвөгтэй байдлыг хэрхэн тооцдог вэ?
Цикломат нарийн төвөгтэй байдал нь хэд хэдэн кодчиллын алдаатай холбоотой байдаг эх кодын нарийн төвөгтэй байдлын хэмжилт юм. Програмын модулийн шугаман бие даасан замын тоог хэмждэг кодын хяналтын урсгалын графикийг боловсруулах замаар тооцоолно
Нэгтгэх төрлийн хамгийн сайн цаг хугацааны нарийн төвөгтэй байдал юу вэ?
Эрэмбэлэх алгоритмууд Алгоритм Өгөгдлийн бүтэц Орон зайн нарийн төвөгтэй байдал:Хамгийн муу Түргэн эрэмбэлэх Массив O(n) Нэгтгэх эрэмбэлэх Массив O(n) Нуруулдан эрэмбэлэх Массив O(1) Гөлгөр эрэмбэлэх Массив O(1)