logo

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

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

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

У сортирању селекцијом, први најмањи елемент се бира из несортираног низа и поставља на прву позицију. Након тога се бира други најмањи елемент и поставља на другу позицију. Процес се наставља све док се низ у потпуности не сортира.

Просечна и најгоре сложеност селекције је На2) , где н је број ставки. Због тога није погодан за велике скупове података.

Сортирање по избору се обично користи када -

  • Мали низ треба сортирати
  • Цена замене није битна
  • Обавезно је проверити све елементе

Сада, да видимо алгоритам сортирања селекције.

Алгоритам

 SELECTION SORT(arr, n) Step 1: Repeat Steps 2 and 3 for i = 0 to n-1 Step 2: CALL SMALLEST(arr, i, n, pos) Step 3: SWAP arr[i] with arr[pos] [END OF LOOP] Step 4: EXIT SMALLEST (arr, i, n, pos) Step 1: [INITIALIZE] SET SMALL = arr[i] Step 2: [INITIALIZE] SET pos = i Step 3: Repeat for j = i+1 to n if (SMALL > arr[j]) SET SMALL = arr[j] SET pos = j [END OF if] [END OF LOOP] Step 4: RETURN pos 

Рад алгоритма сортирања селекције

Сада, да видимо рад алгоритма сортирања селекцијом.

Да бисмо разумели рад алгоритма сортирања селекцијом, узмимо несортирани низ. Биће лакше разумети сортирање селекцијом на примеру.

Нека су елементи низа -

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

Сада, за прву позицију у сортираном низу, цео низ треба да се скенира узастопно.

Сада, 12 се чува на првој позицији, након претраживања читавог низа, налази се да 8 је најмања вредност.

певачи су
избор Алгоритам сортирања

Дакле, замените 12 са 8. После прве итерације, 8 ће се појавити на првој позицији у сортираном низу.

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

За другу позицију, где је тренутно ускладиштено 29, поново секвенцијално скенирамо остале ставке несортираног низа. Након скенирања, налазимо да је 12 други најнижи елемент у низу који треба да се појави на другој позицији.

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

Сада замените 29 са 12. После друге итерације, 12 ће се појавити на другој позицији у сортираном низу. Дакле, после две итерације, две најмање вредности се стављају на почетак на сортиран начин.

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

Исти процес се примењује на остале елементе низа. Сада приказујемо сликовни приказ целог процеса сортирања.

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

Сада је низ потпуно сортиран.

Сложеност сортирања избора

Сада, да видимо временску сложеност сортирања селекције у најбољем, просечном и најгорем случају. Видећемо и просторну сложеност селекције.

1. Временска сложеност

Случај Временска сложеност
Најбољи случај На2)
Авераге Цасе На2)
Најгори случај На2)
    Најбољи случај сложености -Појављује се када није потребно сортирање, тј. низ је већ сортиран. У најбољем случају временска сложеност селекције је На2) .Просечна сложеност случаја -Јавља се када су елементи низа у збрканом редоследу који није правилно растући и неопадајући. Просечна временска сложеност селекције је На2) .Сложеност у најгорем случају -Јавља се када је потребно да се елементи низа сортирају обрнутим редоследом. То значи да претпоставимо да морате да сортирате елементе низа у растућем редоследу, али његови елементи су у опадајућем редоследу. У најгорем случају временска сложеност селекције је На2) .

2. Сложеност простора

Спаце Цомплекити О(1)
Стабилно ДА
  • Просторна сложеност сортирања селекције је О(1). То је зато што је у сортирању по избору потребна додатна променљива за замену.

Имплементација селекцијског сортирања

Сада, да видимо програме сортирања селекције у различитим програмским језицима.

Програм: Напишите програм за имплементацију селекцијског сортирања у језику Ц.

 #include void selection(int arr[], int n) { int i, j, small; for (i = 0; i <n-1; 17 i++) one by move boundary of unsorted subarray { small="i;" minimum element in array for (j="i+1;" j < n; j++) if (arr[j] arr[small]) swap the with first int temp="arr[small];" arr[small]="arr[i];" arr[i]="temp;" } void printarr(int a[], n) * function to print i; (i="0;" i printf('%d ', a[i]); main() a[]="{" 12, 31, 25, 8, 32, }; n="sizeof(a)" sizeof(a[0]); printf('before sorting elements are - 
'); printarr(a, n); selection(a, printf('
after return 0; pre> <p> <strong>Output:</strong> </p> <p>After the execution of above code, the output will be -</p> <img src="//techcodeview.com/img/ds-tutorial/65/selection-sort-algorithm-7.webp" alt="selection Sort Algorithm"> <p> <strong>Program:</strong> Write a program to implement selection sort in C++ language.</p> <pre> #include using namespace std; void selection(int arr[], int n) { int i, j, small; for (i = 0; i <n-1; 15 i++) one by move boundary of unsorted subarray { small="i;" minimum element in array for (j="i+1;" j < n; j++) if (arr[j] arr[small]) swap the with first int temp="arr[small];" arr[small]="arr[i];" arr[i]="temp;" } void printarr(int a[], n) * function to print i; (i="0;" i cout<< a[i] <<' '; main() a[]="{" 80, 10, 29, 11, 8, 30, }; n="sizeof(a)" sizeof(a[0]); 'before sorting elements are - '<<endl; printarr(a, n); selection(a, '
after return 0; pre> <p> <strong>Output:</strong> </p> <p>After the execution of above code, the output will be -</p> <img src="//techcodeview.com/img/ds-tutorial/65/selection-sort-algorithm-8.webp" alt="selection Sort Algorithm"> <p> <strong>Program:</strong> Write a program to implement selection sort in C# language.</p> <pre> using System; class Selection { static void selection(int[] arr) { int i, j, small; int n = arr.Length; for (i = 0; i <n-1; i++) one by move boundary of unsorted subarray { small="i;" minimum element in array for (j="i+1;" j < n; j++) if (arr[j] arr[small]) swap the with first int temp="arr[small];" arr[small]="arr[i];" arr[i]="temp;" } static void printarr(int[] a) * function to print i; n="a.Length;" (i="0;" i console.write(a[i] + ' '); main() int[] a="{" 85, 50, 29, 18, 7, 30, 3}; console.write('before sorting elements are - printarr(a); selection(a); console.write('
after pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/ds-tutorial/65/selection-sort-algorithm-9.webp" alt="selection Sort Algorithm"> <p> <strong>Program:</strong> Write a program to implement selection sort in python.</p> <pre> def selection(a): # Function to implement selection sort for i in range(len(a)): # Traverse through all array elements small = i # minimum element in unsorted array for j in range(i+1, len(a)): if a[small] &gt; a[j]: small = j # Swap the found minimum element with # the first element a[i], a[small] = a[small], a[i] def printArr(a): # function to print the array for i in range(len(a)): print (a[i], end = &apos; &apos;) a = [69, 14, 1, 50, 59] print(&apos;Before sorting array elements are - &apos;) printArr(a) selection(a) print(&apos;
After sorting array elements are - &apos;) selection(a) printArr(a) </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/ds-tutorial/65/selection-sort-algorithm-10.webp" alt="selection Sort Algorithm"> <p> <strong>Program:</strong> Write a program to implement selection sort in Java.</p> <pre> public class Selection { void selection(int a[]) /* function to sort an array with selection sort */ { int i, j, small; int n = a.length; for (i = 0; i <n-1; 21 i++) { small="i;" minimum element in unsorted array for (j="i+1;" j < n; j++) if (a[j] a[small]) swap the with first int temp="a[small];" a[small]="a[i];" a[i]="temp;" } void printarr(int a[]) * function to print i; n="a.length;" (i="0;" i system.out.print(a[i] + ' '); public static main(string[] args) a[]="{" 91, 49, 4, 19, 10, }; selection i1="new" selection(); system.out.println('
before sorting elements are - i1.printarr(a); i1.selection(a); system.out.println('
after system.out.println(); pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/ds-tutorial/65/selection-sort-algorithm-11.webp" alt="selection Sort Algorithm"> <p> <strong>Program:</strong> Write a program to implement selection sort in PHP.</p> <pre> <?php function selection(&$a, $n) /* function to sort an array with selection sort */ { for ($i = 0; $i < $n; $i++) { $small = $i; //minimum element in unsorted array for ($j = $i+1; $j < $n; $j++) if ($a[$j] < $a[$small]) $small = $j; // Swap the minimum element with the first element $temp = $a[$small]; $a[$small] = $a[$i]; $a[$i] = $temp; } } function printArray($a, $n) { for($i = 0; $i < $n; $i++) { print_r($a[$i]); echo ' '; } } $a = array( 90, 48, 3, 18, 9, 20 ); $n = count($a); echo 'Before sorting array elements are - <br>&apos;; printArray($a, $n); selection($a, $n); echo &apos; <br> After sorting array elements are - <br>&apos;; printArray($a, $n); ?&gt; </pre> <p> <strong>Output:</strong> </p> <p>After the execution of above code, the output will be -</p> <img src="//techcodeview.com/img/ds-tutorial/65/selection-sort-algorithm-12.webp" alt="selection Sort Algorithm"> <p>So, that&apos;s all about the article. Hope the article will be helpful and informative to you.</p> <p>This article was not only limited to the algorithm. We have also discussed the Selection sort complexity, working, and implementation in different programming languages.</p> <hr></n-1;></pre></n-1;></pre></n-1;></pre></n-1;>

Излаз:

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

Програм: Напишите програм за имплементацију селекцијског сортирања у Јави.

 public class Selection { void selection(int a[]) /* function to sort an array with selection sort */ { int i, j, small; int n = a.length; for (i = 0; i <n-1; 21 i++) { small="i;" minimum element in unsorted array for (j="i+1;" j < n; j++) if (a[j] a[small]) swap the with first int temp="a[small];" a[small]="a[i];" a[i]="temp;" } void printarr(int a[]) * function to print i; n="a.length;" (i="0;" i system.out.print(a[i] + \' \'); public static main(string[] args) a[]="{" 91, 49, 4, 19, 10, }; selection i1="new" selection(); system.out.println(\'
before sorting elements are - i1.printarr(a); i1.selection(a); system.out.println(\'
after system.out.println(); pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/ds-tutorial/65/selection-sort-algorithm-11.webp" alt="selection Sort Algorithm"> <p> <strong>Program:</strong> Write a program to implement selection sort in PHP.</p> <pre> <?php function selection(&$a, $n) /* function to sort an array with selection sort */ { for ($i = 0; $i < $n; $i++) { $small = $i; //minimum element in unsorted array for ($j = $i+1; $j < $n; $j++) if ($a[$j] < $a[$small]) $small = $j; // Swap the minimum element with the first element $temp = $a[$small]; $a[$small] = $a[$i]; $a[$i] = $temp; } } function printArray($a, $n) { for($i = 0; $i < $n; $i++) { print_r($a[$i]); echo \' \'; } } $a = array( 90, 48, 3, 18, 9, 20 ); $n = count($a); echo \'Before sorting array elements are - <br>&apos;; printArray($a, $n); selection($a, $n); echo &apos; <br> After sorting array elements are - <br>&apos;; printArray($a, $n); ?&gt; </pre> <p> <strong>Output:</strong> </p> <p>After the execution of above code, the output will be -</p> <img src="//techcodeview.com/img/ds-tutorial/65/selection-sort-algorithm-12.webp" alt="selection Sort Algorithm"> <p>So, that&apos;s all about the article. Hope the article will be helpful and informative to you.</p> <p>This article was not only limited to the algorithm. We have also discussed the Selection sort complexity, working, and implementation in different programming languages.</p> <hr></n-1;>

Излаз:

Након извршења горњег кода, излаз ће бити -

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

Дакле, то је све о чланку. Надамо се да ће вам чланак бити користан и информативан.

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