logo

Odabir Sortiraj u Pythonu

U ovom vodiču ćemo implementirati algoritam sortiranja odabira u Pythonu. To je prilično jednostavan algoritam koji koristi manje mijenjanja.

U ovom algoritmu odabiremo najmanji element iz nesortiranog niza u svakom prolazu i mijenjamo ga s početkom nesortiranog niza. Ovaj proces će se nastaviti dok se svi elementi ne postave na pravo mjesto. Jednostavan je i algoritam sortiranja za usporedbu na mjestu.

Rad odabira sortiranja

Slijede koraci za objašnjenje rada odabira sortiranja u Pythonu.

Uzmimo nesortirani niz da primijenimo algoritam sortiranja selekcijom.

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

Korak 1: Dobijte duljinu niza.

duljina = len(niz) → 6

to string metoda u Javi

Korak 2: Prvo postavljamo prvi element kao minimalni element.

Korak - 3: Sada usporedite minimum s drugim elementom. Ako je drugi element manji od prvog, dodjeljujemo ga kao minimum.

Opet uspoređujemo drugi element s trećim i ako je treći element manji od drugog, dodijelimo ga kao minimum. Ovaj proces se nastavlja sve dok ne pronađemo posljednji element.

Korak - 4: Nakon svake iteracije, minimalni element se mijenja ispred nesortiranog niza.

Korak - 5: Drugi do treći korak se ponavljaju dok ne dobijemo sortirani niz.

Algoritam sortiranja odabirom

Algoritam sortiranja odabira je sljedeći.

Algoritam

 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>

Objašnjenje -

Razumimo gornji kod -

  • Prvo, definiramo odabir_sortiranja() funkcija koja uzima niz kao argument.
  • U funkciji dobivamo duljinu niza koji se koristio za određivanje broja prolaza koji treba napraviti usporedbom vrijednosti.
  • Kao što vidimo, koristimo dvije petlje - vanjsku i unutarnju. Vanjska petlja koristi se za ponavljanje kroz vrijednosti popisa. Ova petlja će ponavljati od 0 do (duljina-1). Tako će se prva iteracija izvesti (5-1) ili 4 puta. U svakoj iteraciji, vrijednost varijable i se dodjeljuje varijabli
  • Unutarnja petlja koristi se za usporedbu svake vrijednosti elementa s desne strane s drugom vrijednošću na krajnjem lijevom elementu. Dakle, druga petlja započinje svoju iteraciju od i+1. Odabrat će samo vrijednost koja nije sortirana.
  • Pronađite minimalni element na nesortiranom popisu i ažurirajte poziciju minIndex.
  • Postavite vrijednost na početak niza.
  • Nakon što je iteracija dovršena, vraća se sortirano polje.
  • Na kraju stvaramo nesortirani niz i prelazimo na selekcija_sort() Ispisuje sortirani niz.

Vremenska složenost sortiranja odabira

Vremenska složenost bitna je u smislu vremena potrebnog algoritmu za sortiranje. U sortiranju odabira postoje dvije petlje. Vanjska petlja se izvodi n puta (n je ukupan broj elemenata).

vikas divyakirti

Unutarnja petlja se također izvodi n puta. Uspoređuje ostatak vrijednosti s vrijednošću vanjske petlje. Dakle, postoji n*n puta izvršenja. Stoga je vremenska složenost algoritma sortiranja spajanjem O(n2).

Vremenska složenost može se kategorizirati u tri kategorije.