logo

Sortare selecție în Python

În acest tutorial, vom implementa algoritmul de sortare a selecției în Python. Este un algoritm destul de simplu care utilizează mai puțină schimbare.

aplicații de cloud computing

În acest algoritm, selectăm cel mai mic element dintr-o matrice nesortată la fiecare trecere și schimbăm cu începutul matricei nesortate. Acest proces va continua până când toate elementele sunt plasate la locul potrivit. Este simplu și un algoritm de sortare de comparație la loc.

Funcționarea sortării selecției

Următorii sunt pașii pentru a explica funcționarea sortării Selecție în Python.

Să luăm o matrice nesortată pentru a aplica algoritmul de sortare a selecției.

[30, 10, 12, 8, 15, 1]

Pasul 1: Obțineți lungimea matricei.

lungime = len(matrice) → 6

Pasul 2: Mai întâi, setăm primul element ca element minim.

Pasul 3: Acum comparați minimul cu al doilea element. Dacă al doilea element este mai mic decât primul, îl atribuim ca minim.

Din nou comparăm al doilea element cu al treilea și dacă al treilea element este mai mic decât al doilea, atribuiți-l ca minim. Acest proces continuă până când găsim ultimul element.

Pasul - 4: După fiecare iterație, elementul minim este schimbat în fața matricei nesortate.

program matrice bidimensională în c

Pasul - 5: Al doilea până la al treilea pași se repetă până când obținem matricea sortată.

Algoritmul de sortare a selecției

Algoritmul de sortare a selecției, după cum urmează.

Algoritm

 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&apos;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>

Explicație -

Să înțelegem codul de mai sus -

  • În primul rând, definim selectie_sort() funcție care ia matrice ca argument.
  • În funcție, obținem lungimea matricei care a folosit pentru a determina numărul de treceri care trebuie făcute comparând valori.
  • După cum vedem, folosim două bucle - bucla exterioară și bucla interioară. Bucla exterioară folosește pentru a itera prin valorile listei. Această buclă va itera de la 0 la (lungimea-1). Deci prima iterație va fi efectuată (5-1) sau de 4 ori. În fiecare iterație, valoarea variabilei i este atribuită variabilei
  • Bucla interioară folosește pentru a compara fiecare valoare a elementului din partea dreaptă cu cealaltă valoare din elementul din stânga. Deci, a doua buclă își începe iterația de la i+1. Va alege doar valoarea care nu este sortată.
  • Găsiți elementul minim în lista nesortată și actualizați poziția minIndex.
  • Plasați valoarea la începutul matricei.
  • Odată ce iterația este finalizată, matricea sortată este returnată.
  • În cele din urmă, creăm o matrice nesortată și trecem la selectie_sort() Tipărește matricea sortată.

Timp Complexitatea sortării selecției

Complexitatea timpului este esențială în ceea ce privește timpul necesar unui algoritm pentru a-l sorta. În sortarea de selecție, există două bucle. Bucla exterioară rulează de n ori (n este un număr total de elemente).

educație shloka mehta

Bucla interioară este, de asemenea, executată de n ori. Acesta compară restul valorii cu valoarea buclei exterioare. Deci, există n*n ori de execuție. Prin urmare, complexitatea temporală a algoritmului de sortare de îmbinare este O(n2).

Complexitatea timpului poate fi clasificată în trei categorii.