In questo tutorial, implementeremo l'algoritmo di ordinamento della selezione in Python. È un algoritmo abbastanza semplice che utilizza meno scambi.
In questo algoritmo, selezioniamo l'elemento più piccolo da un array non ordinato in ogni passaggio e lo scambiamo con l'inizio dell'array non ordinato. Questo processo continuerà finché tutti gli elementi non saranno posizionati al posto giusto. È semplice e si tratta di un algoritmo di ordinamento per confronto sul posto.
Funzionamento dell'ordinamento della selezione
Di seguito sono riportati i passaggi per spiegare il funzionamento dell'ordinamento di selezione in Python.
Prendiamo un array non ordinato per applicare l'algoritmo di ordinamento della selezione.
convertire una data in una stringa
[30, 10, 12, 8, 15, 1]
Passo 1: Ottieni la lunghezza dell'array.
come ottenere il piccione selvatico su Android
lunghezza = lunghezza(array) → 6
Passo 2: Per prima cosa impostiamo il primo elemento come elemento minimo.
Passaggio - 3: Ora confrontiamo il minimo con il secondo elemento. Se il secondo elemento è più piccolo del primo, lo assegniamo come minimo.
Ancora una volta confrontiamo il secondo elemento con il terzo e se il terzo elemento è più piccolo del secondo, lo assegniamo come minimo. Questo processo continua finché non troviamo l'ultimo elemento.
Calcolo del mandato in Excel
Passaggio - 4: Dopo ogni iterazione, l'elemento minimo viene scambiato davanti all'array non ordinato.
Passaggio - 5: I passaggi dal secondo al terzo vengono ripetuti finché non otteniamo l'array ordinato.
Algoritmo di ordinamento della selezione
L'algoritmo di ordinamento della selezione come segue.
Algoritmo
industria e fabbrica
selection_sort(array) repeat (0, length - 1) times set the first unsorted element as the minimum for each of the unsorted elements if element <currentminimum set element as new minimum swap with first unsorted position end selection_sort < pre> <h2>Selection Sort Program using Python</h2> <p>The following code snippet shows the selection sort algorithm implementation using Python.</p> <p> <strong>Code -</strong> </p> <pre> def selection_sort(array): length = len(array) for i in range(length-1): minIndex = i for j in range(i+1, length): if array[j] <array[minindex]: minindex="j" array[i], array[minindex]="array[minIndex]," array[i] return array print('the sorted is: ', selection_sort(array)) < pre> <p> <strong>Output:</strong> </p> <pre> The sorted array is: [3, 6, 9, 21, 33] </pre> <p> <strong>Explanation -</strong> </p> <p>Let's understand the above code -</p> <ul> <li>First, we define the <strong>selection_sort()</strong> function that takes array as an argument.</li> <li>In the function, we get the length of the array which used to determine the number of passes to be made comparing values.</li> <li>As we can see that, we use two loops - outer and inner loop. The outer loop uses to iterate through the values of the list. This loop will iterate to 0 to (length-1). So the first iteration will be perform (5-1) or 4 times. In each iteration, the value of the variable i is assigned to the variable</li> <li>The inner loop uses to compare the each value of right-side element to the other value on the leftmost element. So the second loop starts its iteration from i+1. It will only pick the value that is unsorted.</li> <li>Find the minimum element in the unsorted list and update the minIndex position.</li> <li>Place the value at the beginning of the array.</li> <li>Once the iteration is completed, the sorted array is returned.</li> <li>At last we create an unsorted array and pass to the <strong>selection_sort()</strong> It prints the sorted array.</li> </ul> <h2>Time Complexity of Selection Sort</h2> <p>Time complexity is an essential in term of how much time an algorithm take to sort it. In the selection sort, there are two loops. The outer loop runs for the n times (n is a total number of element).</p> <p>The inner loop is also executed for n times. It compares the rest of the value to outer loop value. So, there is n*n times of execution. Hence the time complexity of merge sort algorithm is O(n<sup>2</sup>).</p> <p>The time complexity can be categorized into three categories.</p> <hr></array[minindex]:></pre></currentminimum>
Spiegazione -
Comprendiamo il codice sopra -
- Per prima cosa definiamo il selezione_sort() funzione che accetta array come argomento.
- Nella funzione, otteniamo la lunghezza dell'array utilizzato per determinare il numero di passaggi da effettuare confrontando i valori.
- Come possiamo vedere, utilizziamo due loop: il loop esterno e quello interno. Il ciclo esterno utilizza per scorrere i valori dell'elenco. Questo ciclo ripeterà da 0 a (lunghezza-1). Quindi la prima iterazione verrà eseguita (5-1) o 4 volte. In ogni iterazione, il valore della variabile i viene assegnato alla variabile
- Il ciclo interno utilizza per confrontare ciascun valore dell'elemento sul lato destro con l'altro valore sull'elemento più a sinistra. Quindi il secondo ciclo inizia la sua iterazione da i+1. Sceglierà solo il valore non ordinato.
- Trova l'elemento minimo nell'elenco non ordinato e aggiorna la posizione minIndex.
- Posiziona il valore all'inizio dell'array.
- Una volta completata l'iterazione, viene restituito l'array ordinato.
- Alla fine creiamo un array non ordinato e lo passiamo al file selezione_sort() Stampa l'array ordinato.
Complessità temporale dell'ordinamento della selezione
La complessità temporale è essenziale in termini di quanto tempo impiega un algoritmo per ordinarlo. Nell'ordinamento di selezione ci sono due cicli. Il ciclo esterno viene eseguito per n volte (n è il numero totale di elementi).
Anche il ciclo interno viene eseguito per n volte. Confronta il resto del valore con il valore del loop esterno. Quindi, ci sono n*n tempi di esecuzione. Quindi la complessità temporale dell'algoritmo di merge sort è O(n2).
La complessità temporale può essere classificata in tre categorie.