Video: Ano ang pinakamagandang case time complexity ng merge sort?
2024 May -akda: Lynn Donovan | [email protected]. Huling binago: 2023-12-15 23:54
Pag-uuri ng mga algorithm
Algorithm | Istraktura ng data | Ang pagiging kumplikado ng espasyo: Pinakamasama |
---|---|---|
Mabilis na pag-uuri | Array | O(n) |
Sumanib-uuri | Array | O(n) |
Pag-uuri ng tambak | Array | O(1) |
Makinis na pag-uuri | Array | O(1) |
Bukod dito, ano ang pagiging kumplikado ng oras ng pag-uuri ng pagsasanib?
Ang pagiging kumplikado ng merge sort ay O(nlogn) at HINDI O(logn). Kinuwenta ng divide step ang midpoint ng bawat isa sa mga sub-array. Ang bawat hakbang na ito ay tumatagal lamang ng O(1) oras . Ang pagtagumpayan hakbang recursively mga uri dalawang subarray ng n/2 (para sa kahit n) elemento bawat isa.
ano ang pinakamainam na case time complexity ng bubble sort? Ang puwang pagiging kumplikado para sa Bubble Sort ay O(1), dahil isang solong karagdagang espasyo sa memorya lamang ang kinakailangan i.e. para sa temp variable. Din ang pinakamahusay na kaso kumplikadong oras ay magiging O(n), ito ay kapag ang listahan ay mayroon na pinagsunod-sunod.
Bukod, ano ang pinakamahusay na pagiging kumplikado ng kaso ng pag-uuri ng pagsasanib?
n*log(n)
Ano ang pagiging kumplikado ng oras ng pagpapatakbo ng insertion sort sa pinakamahusay na kaso at ang pinakamasamang sitwasyon ng kaso?
Pinakamahusay , pinakamasama , at karaniwan kaso Ang pinakamagandang kaso Ang input ay isang array na pinagsunod-sunod . Dito sa pag-uuri ng paglalagay ng kaso may linear tumatakbo ang oras (ibig sabihin, O(n)). Sa bawat pag-ulit, ang unang natitirang elemento ng input ay inihahambing lamang sa pinakakanang elemento ng pinagsunod-sunod subsection ng array.
Inirerekumendang:
Aling algorithm ng pag-uuri ang may pinakamahusay na asymptotic complexity?
Pagbukud-bukurin
Paano kinakalkula ang pagiging kumplikado ng merge sort?
2 Sagot. Ang paghahati ng isang node A[L,R] sa dalawang node ay tumatagal ng R−L+1 na beses at pagkatapos ay pagsasamahin ang dalawang child node na A[L,M] at A[M+1,R] muli ay kukuha ng A[R−L +1] oras. Kaya para sa bawat node, ang bilang ng mga operasyon na ginagawa ng algorithm ay katumbas ng dalawang beses ang laki ng array na tumutugma sa node na iyon
Paano ka sumulat ng merge sort?
Pagsamahin ang Pagbukud-bukurin Hatiin ang hindi naayos na listahan sa mga sublist, bawat isa ay naglalaman ng elemento. Kumuha ng magkatabing pares ng dalawang singleton na listahan at pagsamahin ang mga ito upang bumuo ng isang listahan ng 2 elemento. N. ay magko-convert na ngayon sa mga listahan ng laki 2. Ulitin ang proseso hanggang sa isang solong pinagsunod-sunod na listahan ng nakuha
Saan ginagamit ang merge sort?
Pagsamahin ang Pag-uuri: ginagamit sa mga sitwasyon ng database, dahil stable (multi-key sort) at panlabas (hindi lahat ng resulta ay magkasya sa memorya). Kapaki-pakinabang sa mga distributed na sitwasyon kung saan dumarating ang karagdagang data sa panahon o pagkatapos ng pag-uuri. Pinipigilan ng pagkonsumo ng memorya ang mas malawak na paggamit sa maliliit na device, ngunit umiiral ang in-place na bersyon ng Nlog^2N
Paano mo tukuyin ang compile time constant sa Java Ano ang gamit ng compile time constants?
Compile-time constants at mga variable. Sinasabi ng dokumentasyon ng wikang Java: Kung ang isang primitive na uri o isang string ay tinukoy bilang isang pare-pareho at ang halaga ay kilala sa oras ng pag-compile, pinapalitan ng compiler ang pare-parehong pangalan sa lahat ng dako sa code ng halaga nito. Ito ay tinatawag na compile-time constant