Tässä opetusohjelmassa toteutamme valintalajittelualgoritmin Pythonissa. Se on melko yksinkertainen algoritmi, joka käyttää vähemmän vaihtoa.
Tässä algoritmissa valitsemme lajittelemattomasta taulukosta pienimmän elementin jokaisessa kierrossa ja vaihdamme lajittelemattoman taulukon alun kanssa. Tätä prosessia jatketaan, kunnes kaikki elementit on asetettu oikeaan paikkaan. Se on yksinkertainen ja paikallaan oleva vertailulajittelualgoritmi.
pitkä merkkijono java
Valintalajittelun työskentely
Seuraavat vaiheet selittävät valintalajittelun toiminnan Pythonissa.
Otetaan lajittelematon matriisi valintalajittelualgoritmin soveltamiseksi.
[30, 10, 12, 8, 15, 1]
Vaihe 1: Hanki taulukon pituus.
pituus = len(matriisi) → 6
Vaihe - 2: Ensin asetamme ensimmäisen elementin minimielementiksi.
Vaihe - 3: Vertaa nyt minimiä toiseen elementtiin. Jos toinen elementti on pienempi kuin ensimmäinen, määritämme sen minimiksi.
Jälleen vertaamme toista elementtiä kolmanteen ja jos kolmas elementti on pienempi kuin toinen, määritä se minimiksi. Tämä prosessi jatkuu, kunnes löydämme viimeisen elementin.
Vaihe - 4: Jokaisen iteroinnin jälkeen minimielementti vaihdetaan lajittelemattoman taulukon eteen.
10 ml on kuinka paljon
Vaihe - 5: Toisesta kolmanteen vaihetta toistetaan, kunnes saadaan lajiteltu taulukko.
Valintalajittelualgoritmi
Valinnan lajittelualgoritmi seuraavasti.
Algoritmi
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>
Selitys -
Ymmärretään yllä oleva koodi -
- Ensin määrittelemme valinta_lajittelu() funktio, joka ottaa taulukon argumenttina.
- Funktiossa saamme sen taulukon pituuden, jolla määritettiin arvojen vertailussa suoritettavien siirtojen määrä.
- Kuten näemme, käytämme kahta silmukkaa - ulompaa ja sisäistä silmukkaa. Ulompi silmukka käyttää luettelon arvojen iterointia. Tämä silmukka toistuu 0 - (pituus-1). Joten ensimmäinen iteraatio suoritetaan (5-1) tai 4 kertaa. Jokaisessa iteraatiossa muuttujalle annetaan muuttujan i arvo
- Sisäsilmukka vertaa oikeanpuoleisen elementin kutakin arvoa vasemmanpuoleisimman elementin toiseen arvoon. Joten toinen silmukka aloittaa iteraationsa i+1:stä. Se valitsee vain lajittelemattoman arvon.
- Etsi lajittelemattoman luettelon vähimmäiselementti ja päivitä minIndex-sijainti.
- Aseta arvo taulukon alkuun.
- Kun iterointi on valmis, lajiteltu matriisi palautetaan.
- Lopuksi luomme lajittelemattoman taulukon ja siirrymme kohtaan valinta_lajittelu() Se tulostaa lajitellun taulukon.
Valinnan lajittelun aika monimutkaisuus
Aika monimutkaisuus on olennainen sen suhteen, kuinka paljon aikaa algoritmilla sen lajitteluun kuluu. Valintalajittelussa on kaksi silmukkaa. Ulompi silmukka kulkee n kertaa (n on elementtien kokonaismäärä).
Myös sisäsilmukka suoritetaan n kertaa. Se vertaa loput arvosta ulkosilmukan arvoon. Suorituskertaa on siis n*n. Siksi yhdistämislajittelualgoritmin aikamonimutkaisuus on O(n2).
Aika monimutkaisuus voidaan luokitella kolmeen kategoriaan.