logo

Utvalgssortering i Python

I denne opplæringen vil vi implementere utvalgssorteringsalgoritmen i Python. Det er ganske grei algoritme ved å bruke mindre bytte.

I denne algoritmen velger vi det minste elementet fra en usortert matrise i hvert pass og bytter med begynnelsen av den usorterte matrisen. Denne prosessen vil fortsette til alle elementene er plassert på riktig sted. Det er enkelt og en på stedet sammenligningssorteringsalgoritme.

i streng i java

Arbeid av utvalgssortering

Følgende er trinnene for å forklare hvordan utvalgssortering fungerer i Python.

La oss ta en usortert matrise for å bruke utvalgssorteringsalgoritmen.

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

Trinn 1: Få lengden på matrisen.

lengde = len(array) → 6

Steg 2: Først setter vi det første elementet som minimumselement.

legge til en array java

Trinn - 3: Sammenlign nå minimum med det andre elementet. Hvis det andre elementet er mindre enn det første, tilordner vi det som et minimum.

Igjen sammenligner vi det andre elementet med det tredje, og hvis det tredje elementet er mindre enn det andre, tilordne det som minimum. Denne prosessen fortsetter til vi finner det siste elementet.

Trinn - 4: Etter hver iterasjon byttes minimumselementet foran den usorterte matrisen.

Trinn - 5: Det andre til tredje trinnet gjentas til vi får den sorterte matrisen.

fjern første tegn i excel

Valg sorteringsalgoritme

Valgsorteringsalgoritmen som følger.

Algoritme

java hei verden
 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>

Forklaring -

La oss forstå koden ovenfor -

  • Først definerer vi utvalg_sort() funksjon som tar array som et argument.
  • I funksjonen får vi lengden på arrayet som brukes til å bestemme antall passeringer som skal gjøres for å sammenligne verdier.
  • Som vi kan se det bruker vi to løkker - ytre og indre løkke. Den ytre løkken brukes til å iterere gjennom verdiene i listen. Denne sløyfen vil iterere til 0 til (lengde-1). Så den første iterasjonen utføres (5-1) eller 4 ganger. I hver iterasjon blir verdien av variabelen i tilordnet variabelen
  • Den indre sløyfen brukes til å sammenligne hver verdi av elementet på høyre side med den andre verdien på elementet lengst til venstre. Så den andre sløyfen starter sin iterasjon fra i+1. Den vil bare velge verdien som er usortert.
  • Finn minimumselementet i den usorterte listen og oppdater minIndex-posisjonen.
  • Plasser verdien i begynnelsen av matrisen.
  • Når iterasjonen er fullført, returneres den sorterte matrisen.
  • Til slutt lager vi en usortert matrise og går videre til utvalg_sort() Den skriver ut den sorterte matrisen.

Tidskompleksitet for utvalgssortering

Tidskompleksitet er avgjørende for hvor mye tid en algoritme tar å sortere den. I utvalgssortering er det to løkker. Den ytre sløyfen løper n ganger (n er et totalt antall elementer).

Den indre løkken utføres også n ganger. Den sammenligner resten av verdien med ytre sløyfeverdi. Så det er n*n ganger med utførelse. Derfor er tidskompleksiteten til flettesorteringsalgoritmen O(n2).

Tidskompleksiteten kan kategoriseres i tre kategorier.