logo

Сортирање избора у Питхон-у

У овом водичу ћемо имплементирати алгоритам сортирања селекције у Питхон-у. То је прилично једноставан алгоритам који користи мање замене.

својства киселина

У овом алгоритму бирамо најмањи елемент из несортираног низа у сваком пролазу и мењамо са почетком несортираног низа. Овај процес ће се наставити све док сви елементи не буду постављени на право место. То је једноставан и алгоритам за поређење на месту.

Рад селекције

Следе кораци који објашњавају рад сортирања Селецтион у Питхон-у.

Узмимо несортирани низ да применимо алгоритам сортирања селекције.

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

Корак 1: Добијте дужину низа.

дужина = лен(низ) → 6

Корак 2: Прво постављамо први елемент као минимални елемент.

Корак - 3: Сада упоредите минимум са другим елементом. Ако је други елемент мањи од првог, додељујемо га као минимум.

Поново поредимо други елемент са трећим и ако је трећи елемент мањи од другог, додељујемо га као минимум. Овај процес се наставља све док не пронађемо последњи елемент.

Корак - 4: После сваке итерације, минимални елемент се замењује испред несортираног низа.

Корак - 5: Други до трећи кораци се понављају док не добијемо сортирани низ.

Алгоритам за сортирање избора

Алгоритам за избор сортирања је следећи.

Алгоритам

 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>

Објашњење -

Хајде да разумемо горњи код -

  • Прво, дефинишемо селекција_сорт() функција која узима низ као аргумент.
  • У функцији добијамо дужину низа који се користи за одређивање броја пролаза које треба направити упоређујући вредности.
  • Као што видимо, користимо две петље - спољашњу и унутрашњу петљу. Спољна петља користи за понављање кроз вредности листе. Ова петља ће се понављати до 0 до (дужина-1). Дакле, прва итерација ће бити изведена (5-1) или 4 пута. У свакој итерацији, вредност променљиве и се додељује променљивој
  • Унутрашња петља користи за упоређивање сваке вредности десног елемента са другом вредношћу на крајњем левом елементу. Дакле, друга петља почиње своју итерацију од и+1. Изабраће само вредност која није сортирана.
  • Пронађите минимални елемент у несортираној листи и ажурирајте позицију минИндек.
  • Поставите вредност на почетак низа.
  • Када се итерација заврши, враћа се сортирани низ.
  • Коначно креирамо несортирани низ и прелазимо на селекција_сорт() Штампа сортирани низ.

Временска сложеност селекције

Временска сложеност је од суштинског значаја у смислу времена потребног алгоритму да га сортира. У сортирању избора постоје две петље. Спољна петља се покреће н пута (н је укупан број елемената).

ред у Јави

Унутрашња петља се такође извршава н пута. Он пореди остатак вредности са вредношћу спољне петље. Дакле, постоји н*н времена извршења. Отуда је временска сложеност алгоритма сортирања спајањем О(н2).

Временска сложеност се може категорисати у три категорије.