logo

Sortowanie przez wybór w Pythonie

W tym samouczku zaimplementujemy algorytm sortowania przez wybór w Pythonie. Jest to dość prosty algorytm wykorzystujący mniejszą wymianę.

W tym algorytmie w każdym przebiegu wybieramy najmniejszy element z nieposortowanej tablicy i zamieniamy go z początkiem nieposortowanej tablicy. Proces ten będzie kontynuowany, aż wszystkie elementy zostaną umieszczone na właściwych miejscach. Jest to prosty i działający na miejscu algorytm sortowania porównawczego.

10 najlepszych hentaiów

Działanie sortowania przez wybór

Poniżej przedstawiono kroki wyjaśniające działanie sortowania przez wybór w Pythonie.

Weźmy nieposortowaną tablicę, aby zastosować algorytm sortowania przez wybór.

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

Krok 1: Uzyskaj długość tablicy.

długość = len(tablica) → 6

Krok 2: Najpierw ustawiamy pierwszy element jako element minimalny.

porównywalny interfejs Java

Krok 3: Teraz porównaj minimum z drugim elementem. Jeśli drugi element jest mniejszy od pierwszego, przypisujemy go jako minimum.

Ponownie porównujemy drugi element z trzecim i jeśli trzeci element jest mniejszy od drugiego, przypisujemy go jako minimum. Proces ten trwa aż do znalezienia ostatniego elementu.

Krok 4: Po każdej iteracji element minimalny jest zamieniany przed nieposortowaną tablicą.

Krok - 5: Kroki od drugiego do trzeciego są powtarzane, aż otrzymamy posortowaną tablicę.

Algorytm sortowania przez wybór

Algorytm sortowania przez wybór jest następujący.

Algorytm

 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>

Wyjaśnienie -

Rozumiemy powyższy kod -

  • Najpierw definiujemy selekcja_sort() funkcja, która przyjmuje tablicę jako argument.
  • W funkcji otrzymujemy długość tablicy, która posłużyła do określenia liczby przejść, jakie należy wykonać przy porównywaniu wartości.
  • Jak widzimy, używamy dwóch pętli - zewnętrznej i wewnętrznej. Pętla zewnętrzna służy do iteracji po wartościach listy. Ta pętla będzie iterować od 0 do (długość-1). Zatem pierwsza iteracja zostanie wykonana (5-1) lub 4 razy. W każdej iteracji wartość zmiennej i jest przypisywana do zmiennej
  • Wewnętrzna pętla porównuje każdą wartość prawego elementu z inną wartością lewego elementu. Zatem druga pętla rozpoczyna swoją iterację od i+1. Wybierze tylko nieposortowaną wartość.
  • Znajdź minimalny element na nieposortowanej liście i zaktualizuj pozycję minIndex.
  • Umieść wartość na początku tablicy.
  • Po zakończeniu iteracji zwracana jest posortowana tablica.
  • Na koniec tworzymy nieposortowaną tablicę i przekazujemy do selekcja_sort() Drukuje posortowaną tablicę.

Złożoność czasowa sortowania przez wybór

Złożoność czasowa jest istotna ze względu na czas potrzebny algorytmowi na jej posortowanie. Podczas sortowania przez wybór występują dwie pętle. Zewnętrzna pętla działa n razy (n to całkowita liczba elementów).

Wewnętrzna pętla jest również wykonywana n razy. Porównuje resztę wartości z wartością pętli zewnętrznej. Zatem jest n*n czasów wykonania. Stąd złożoność czasowa algorytmu sortowania przez scalanie wynosi O(n2).

Aktor Recha

Złożoność czasową można podzielić na trzy kategorie.