logo

Valgsorteringsalgoritme

I denne artikel vil vi diskutere algoritmen for valgsortering. Arbejdsproceduren for udvælgelse er også enkel. Denne artikel vil være meget nyttig og interessant for studerende, da de kan blive udsat for udvælgelsessortering som et spørgsmål i deres eksamener. Så det er vigtigt at diskutere emnet.

Ved udvælgelsessortering vælges den mindste værdi blandt de usorterede elementer i arrayet i hver passage og indsættes til dens passende position i arrayet. Det er også den enkleste algoritme. Det er en in-place sammenligningssorteringsalgoritme. I denne algoritme er arrayet opdelt i to dele, først er den sorterede del, og en anden er den usorterede del. Til at begynde med er den sorterede del af arrayet tom, og usorteret del er den givne array. Sorteret del er placeret til venstre, mens den usorterede del er placeret til højre.

Ved udvælgelsessortering vælges det første mindste element fra det usorterede array og placeres på den første position. Derefter vælges det andet mindste element og placeres i den anden position. Processen fortsætter, indtil arrayet er helt sorteret.

Den gennemsnitlige og worst-case kompleksitet af udvælgelse er 2) , hvor n er antallet af varer. På grund af dette er den ikke egnet til store datasæt.

Udvælgelsessortering bruges generelt, når -

  • Et lille array skal sorteres
  • Bytteomkostninger er ligegyldige
  • Det er obligatorisk at kontrollere alle elementer

Lad os nu se algoritmen for udvælgelsessortering.

Algoritme

 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 

Arbejde med udvælgelsessortealgoritme

Lad os nu se, hvordan udvælgelsessorteringsalgoritmen fungerer.

Lad os tage et usorteret array for at forstå, hvordan sorteringsalgoritmen udvælges. Det vil være lettere at forstå udvælgelsessorten via et eksempel.

Lad elementerne i array være -

valg Sort Algoritme

Nu, for den første position i det sorterede array, skal hele arrayet scannes sekventielt.

På nuværende tidspunkt 12 er gemt på den første position, efter at have søgt i hele arrayet, konstateres det, at 8 er den mindste værdi.

hej verden med java
valg Sort Algoritme

Så skift 12 med 8. Efter den første iteration vil 8 vises på den første position i det sorterede array.

valg Sort Algoritme

For den anden position, hvor 29 er gemt i øjeblikket, scanner vi igen sekventielt resten af ​​elementerne i usorteret array. Efter scanning finder vi ud af, at 12 er det næstlaveste element i arrayet, der skal vises i anden position.

valg Sort Algoritme

Skift nu 29 med 12. Efter den anden iteration vil 12 vises på den anden position i det sorterede array. Så efter to iterationer placeres de to mindste værdier i begyndelsen på en sorteret måde.

valg Sort Algoritme

Den samme proces anvendes på resten af ​​array-elementerne. Nu viser vi en billedlig fremstilling af hele sorteringsprocessen.

valg Sort Algoritme

Nu er arrayet helt sorteret.

Udvælgelsessorteringskompleksitet

Lad os nu se tidskompleksiteten af ​​udvælgelsessortering i bedste tilfælde, gennemsnitligt tilfælde og i værste tilfælde. Vi vil også se pladskompleksiteten af ​​udvælgelsessorten.

1. Tidskompleksitet

Sag Tidskompleksitet
Bedste sag 2)
Gennemsnitlig tilfælde 2)
Worst Case 2)
    Best case kompleksitet -Det opstår, når der ikke er behov for sortering, dvs. arrayet er allerede sorteret. Den bedst mulige tidskompleksitet af udvælgelsessorten er 2) .Gennemsnitlig sagskompleksitet -Det opstår, når array-elementerne er i rodet rækkefølge, der ikke er korrekt stigende og ikke korrekt faldende. Den gennemsnitlige sagstidskompleksitet af udvælgelsessorten er 2) .Worst Case Complexity -Det opstår, når array-elementerne skal sorteres i omvendt rækkefølge. Det betyder, at du skal sortere array-elementerne i stigende rækkefølge, men dets elementer er i faldende rækkefølge. Den værst tænkelige tidskompleksitet ved udvælgelse er 2) .

2. Rumkompleksitet

Rumkompleksitet O(1)
Stabil JA
  • Rumkompleksiteten af ​​udvælgelsessortering er O(1). Det skyldes, at der i udvælgelsessortering kræves en ekstra variabel for at bytte.

Implementering af udvælgelsessortering

Lad os nu se de udvalgte programmer sortere på forskellige programmeringssprog.

Program: Skriv et program til at implementere udvælgelsessortering i C-sprog.

 #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;>

Produktion:

valg Sort Algoritme

Program: Skriv et program til at implementere udvælgelsessortering i Java.

 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;>

Produktion:

Efter udførelse af ovenstående kode vil outputtet være -

valg Sort Algoritme

Så det handler om artiklen. Håber artiklen vil være nyttig og informativ for dig.

Denne artikel var ikke kun begrænset til algoritmen. Vi har også diskuteret sorterings kompleksitet, arbejde og implementering i forskellige programmeringssprog.