I'm a bit confused with the performance guarantee and complexity of
selection sort.
I checked through internet and the complexity of selection sort is
O(n^2). This O(n^2) is in terms of time complexity, am i right?
destro. È il numero totale di operazioni a tempo costante a fattore costante * dipendente dalla dimensione di input (questa è ancora semplificata) .
So how about performance guarantee? Is the performance guarantee in my
case measured in terms of swapping or in time complexity as well? If
the performance guarantee is in terms of swapping, so best case of
swapping is zero swaps (the array is already sorted) and the worst
case of swapping is n-1 step? The performance guarantee is then equal
to (n-1)/0=undefined, am I correct?
Non so cosa consideri una garanzia di prestazioni, ma la notazione O grande ci garantisce che un algoritmo O (n ^ 2) non verrà eseguito più lentamente di quanto indicato da questo limite. Una garanzia di esecuzione non dovrebbe essere data solo in termini di scambio, devi guardare all'intero algoritmo. Ma puoi chiedere esplicitamente una garanzia di performance per lo swapping in uno specifico algoritmo, se questo ti interessa (per qualsiasi motivo). Per la selezione sort questo è Theta (n) poiché si scambia sempre n-1 volte con l'ordinamento di selezione classico, l'algoritmo somtimes scambia un oggetto con se stesso (che non è ancora un'operazione a tempo zero, perché dubito che il compilatore possa ottimizzarlo in ogni caso).
Please correct me if im wrong...or is the performance guarantee is in
terms of running time? Then performance guarantee will be (n-1)/(n-1)
= 1?
A mio parere, la garanzia di prestazione è una misura per il grado di soluzioni di algoritmi euristici. È sufficiente confrontare la soluzione approssimata con la soluzione ottimale nota e calcolare quanto è vicina. Però non ne sono completamente sicuro.
Se dovessi applicare questo tipo di pensiero agli algoritmi di ordinamento che si scambiano, allora direi che il caso migliore per lo swapping è sempre O (n). E poichè la selezione sort scambia Theta (n) volte la "garanzia di prestazioni per lo scambio" è probabilmente 1. Quando voglio garantire qualcosa, di solito sono preoccupato per i peggiori tipi di comportamento. Quindi nel caso peggiore una soluzione ottimale scambia n-1 volte e così fa la selezione. Sarebbe inutile prendere il miglior caso di una soluzione ottimale.