Domande sulla scienza e l'arte di determinare le proprietà degli algoritmi, tra cui la correttezza, il tempo di esecuzione e l'utilizzo dello spazio. Utilizzare il tag [runtime-analysis] per domande sul runtime degli algoritmi.
L' analisi semplificata ha trovato la sua strada nell'analisi del flusso principale di algoritmi? È comune per i progettisti di algoritmi applicare un'analisi uniforme ai loro algoritmi?
Per inquadrare la domanda, nell'informatica spesso vogliamo calcolare il prodotto di diverse probabilità: P(A,B,C) = P(A) * P(B) * P(C) L'approccio più semplice è semplicemente quello di moltiplicare questi numeri, ed è quello che stavo per fare. Tuttavia, il mio capo ha detto che è meglio aggiungere il registro delle …
Alcuni algoritmi complicati ( union-find ) hanno la funzione di Ackermann inversa quasi costante che appare nella complessità del tempo asintotico e sono ottimali nel caso peggiore se il termine di Ackermann inverso quasi costante viene ignorato. Esistono esempi di algoritmi noti con tempi di esecuzione che coinvolgono funzioni che …
A volte è facile identificare la complessità temporale di un algoritmo che sto esaminando attentamente. Gli algoritmi con due loop nidificati di sono ovviamente . Gli algoritmi che esplorano tutte le possibili combinazioni di gruppi di due valori sono ovviamenteN 2 N 2 NNNNN2N2N^2NNN2N2N2^N . Tuttavia non so come "individuare" …
Ho il seguente codice Python. def collatz(n): if n <= 1: return True elif (n%2==0): return collatz(n/2) else: return collatz(3*n+1) Qual è il tempo di esecuzione di questo algoritmo? Provare: Se T(n)T(n)T(n) indica il tempo di esecuzione della funzione collatz(n). Quindi penso di avere ⎧⎩⎨T(n)=1 for n≤1T(n)=T(n/2) for n evenT(n)=T(3n+1) …
Mi preoccupo della questione del tempo di esecuzione asintotico dell'algoritmo di Ukkonen , forse l'algoritmo più popolare per la costruzione di alberi di suffissi in tempo lineare (?). Ecco una citazione dal libro "Algorithms on archi, alberi e sequenze" di Dan Gusfield (sezione 6.5.1): "... gli algoritmi di Aho-Corasick, Weiner, …
Noto che in alcuni articoli di ricerca CS, per confrontare l'efficienza di due algoritmi, viene utilizzato il numero totale di confronto chiave negli algoritmi anziché i tempi di calcolo reali. Perché non possiamo confrontare quale è meglio eseguendo entrambi i programmi e contando il tempo totale necessario per eseguire gli …
L'ordinamento rapido randomizzato è un'estensione dell'ordinamento rapido in cui l'elemento pivot viene scelto in modo casuale. Quale può essere la peggiore complessità temporale di questo algoritmo. Secondo me, dovrebbe essere O (n2)O(n2)O(n^2) , poiché il caso peggiore si verifica quando il perno scelto casualmente viene selezionato in ordine ordinato o …
Hai una matrice di elementi distinti. Hai accesso a un comparatore (una funzione di scatola nera che prende due elementi e e restituisce vero iff ) e una fonte di bit veramente casuale (una funzione di scatola nera che non prende argomenti e restituisce un bit casuale uniformemente indipendente). Considera …
Nel loro libro Randomized Algorithms , Motwani e Raghavan aprono l'introduzione con una descrizione della loro funzione RandQS - Randomized quicksort - dove il perno, usato per dividere il set in due parti, viene scelto a caso. Da un po 'di tempo mi sto rompendo il cervello (per certi versi …
La combinatoria svolge un ruolo importante nell'informatica. Utilizziamo frequentemente metodi combinatori sia in analisi che in progettazione in algoritmi. Ad esempio, un metodo per trovare un set di copertine kkk -vertex in un grafico potrebbe semplicemente ispezionare tutti i possibili sottoinsiemi . Mentre le funzioni binomiali crescono in modo esponenziale, …
L'algoritmo di ordinamento rapido può essere suddiviso nei seguenti passaggi Identificare pivot. Partiziona l'elenco collegato in base al pivot. Dividi ricorsivamente l'elenco collegato in 2 parti. Ora, se scelgo sempre l'ultimo elemento come pivot, l'identificazione dell'elemento pivot (primo passaggio) richiede tempo.O(n)O(n)\mathcal O(n) Dopo aver identificato l'elemento pivot, possiamo memorizzare i …
Nel libro "Geometria computazionale: algoritmi e applicazioni" di Mark de Berg et al., Esiste un algoritmo di forza bruta molto semplice per il calcolo delle triangolazioni di Delaunay. L'algoritmo utilizza la nozione di bordi illegali : bordi che potrebbero non apparire in una triangolazione Delaunay valida e devono essere sostituiti …
L'anno scorso stavo leggendo un fantastico articolo su "Meccanica quantistica per la scuola materna" . Non è stata una carta facile. Ora, mi chiedo come spiegare quicksort con le parole più semplici possibili. Come posso provare (o almeno fare un'onda) che la complessità media è e quali sono i casi …
Molto probabilmente, questa domanda viene posta prima. Viene dal problema CLRS (2a edizione) 6.5-8 - Dare un algoritmo per unire k elenchi ordinati in un elenco ordinato, dove n è il numero totale di elementi in tutti gli elenchi di input. (Suggerimento: usa un heap min per kO(nlgk)O(nlgk)O(n \lg k)kkknnnkkk …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.