L'ordinamento Radix è teoricamente molto veloce quando sai che le chiavi si trovano in un certo intervallo limitato, ad esempio valori nell'intervallo . Se converti semplicemente i valori in base che richiede tempo , esegui un ordinamento base radix e poi converti nuovamente nella base originale per un algoritmo globale …
Sto cercando un algoritmo di ordinamento per array int che non alloca alcun byte diverso dalle dimensioni dell'array ed è limitato a due istruzioni: SWAP: scambia l'indice successivo con quello attuale; SPOSTA: sposta il cursore sull'indice +1 o -1; Cioè, non è possibile scambiare indici non vicini, né scambiare l'indice …
Considera il seguente problema: Input: due matrici e di lunghezza , dove è in ordine.AAABBBnnnBBB Domanda: do e contengono gli stessi elementi (con la loro molteplicità)?AAABBB Qual è l' algoritmo deterministico più veloce per questo problema? Può essere risolto più velocemente di ordinarli? Questo problema può essere risolto in un …
Come posso ordinare un elenco di 5 numeri interi in modo tale che nel peggiore dei casi ci vogliono 7 confronti? Non mi importa di quante altre operazioni vengono eseguite. Non so nulla di particolare sugli interi. Ho provato alcuni approcci di divisione e conquista diversi che mi portano a …
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 …
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 …
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 …
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 …
Assumi due elenchi di elementi comparabili: u e s. Sia INV (u) il numero di inversioni in u. Sto cercando un algoritmo efficiente per inserire gli elementi di s in te con un aumento minimo di INV (u). Fondamentalmente vorrei inserire oggetti in un elenco mantenendolo "il più ordinato possibile" …
Un elenco -item può essere verificato come ordinato confrontando ogni articolo con il suo vicino. Nella mia applicazione, non sarò in grado di confrontare ogni elemento con il suo vicino: invece, i confronti a volte saranno tra elementi distanti. Dato che l'elenco contiene più di tre elementi e anche che …
È possibile utilizzare un algoritmo di ordinamento con un confronto non transitivo e, in caso affermativo, perché la transitività è elencata come requisito per i comparatori di ordinamento? Sfondo: Un algoritmo di ordinamento in genere ordina gli elementi di un elenco secondo una funzione di confronto C (x, y), con …
Dato un tubo con palline numerate (casuali). Il tubo ha fori per rimuovere una palla. Considerare i seguenti passaggi per un'operazione: Puoi scegliere una o più palline dai fori e ricordare l'ordine in cui le hai raccolte. È necessario inclinare il tubo verso il lato sinistro in modo che le …
Dato un array AAA di NNN numeri interi, ogni elemento dell'array può essere aumentato di un numero fisso bbb con una certa probabilità p[i]p[i]p[i] , 0≤i<n0≤i<n0 \leq i < n . Devo trovare il numero previsto di swap che avranno luogo per ordinare l'array usando il bubble sort . Ho …
Quindi unire l'ordinamento è un algoritmo di divisione e conquista. Mentre stavo guardando il diagramma sopra, stavo pensando se fosse possibile bypassare sostanzialmente tutti i passaggi di divisione. Se si scorreva sull'array originale mentre si saltava di due, è possibile ottenere gli elementi nell'indice i e i + 1 e …
Considerando questo pseudo-codice di un bubblesort: FOR i := 0 TO arraylength(list) STEP 1 switched := false FOR j := 0 TO arraylength(list)-(i+1) STEP 1 IF list[j] > list[j + 1] THEN switch(list,j,j+1) switched := true ENDIF NEXT IF switched = false THEN break ENDIF NEXT Quali sarebbero le idee …
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.