0% found this document useful (0 votes)
8 views

Selection Sort Algorithm

Selection sort is an algorithm that sorts a list by repeatedly selecting the smallest element from the unsorted portion and moving it to the sorted portion. It works by iterating through the list and swapping elements to put the smallest element first, then moving to the second element and repeating until sorted. Pseudocode and C++ code are provided as an example implementation.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Selection Sort Algorithm

Selection sort is an algorithm that sorts a list by repeatedly selecting the smallest element from the unsorted portion and moving it to the sorted portion. It works by iterating through the list and swapping elements to put the smallest element first, then moving to the second element and repeating until sorted. Pseudocode and C++ code are provided as an example implementation.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Selection Sort

Selection sort is a simple and efficient sorting algorithm that works by repeatedly selecting the smallest (or largest)
element from the unsorted portion of the list and moving it to the sorted portion of the list.
The algorithm repeatedly selects the smallest (or largest) element from the unsorted portion of the list and swaps it with
the first element of the unsorted part. This process is repeated for the remaining unsorted portion until the entire list is
sorted.
How does Selection Sort Algorithm work?
Lets consider the following array as an example: arr[] = {64, 25, 12, 22, 11}
First pass:
 For the first position in the sorted array, the whole array is traversed from index 0 to 4 sequentially. The
first position where 64 is stored presently, after traversing whole array it is clear that 11 is the lowest
value.
 Thus, replace 64 with 11. After one iteration 11, which happens to be the least value in the array, tends to
appear in the first position of the sorted list.

Second Pass:
 For the second position, where 25 is present, again traverse the rest of the array in a sequential manner.
 After traversing, we found that 12 is the second lowest value in the array and it should appear at the
second place in the array, thus swap these values.

Third Pass:
 Now, for third place, where 25 is present again traverse the rest of the array and find the third least value
present in the array.
 While traversing, 22 came out to be the third least value and it should appear at the third place in the
array, thus swap 22 with element present at third position.

Fourth pass:
 Similarly, for fourth position traverse the rest of the array and find the fourth least element in the array
 As 25 is the 4th lowest value hence, it will place at the fourth position.

Fifth Pass:
 At last the largest value present in the array automatically get placed at the last position in the array
 The resulted array is the sorted array.

Implementation:
Below is the implementation of the above approach:
// C++ program for implementation of
// selection sort
#include <bits/stdc++.h>
using namespace std;

// Function for Selection sort


void selectionSort(int arr[], int n)
{
int i, j, min_idx;

// One by one move boundary of


// unsorted subarray
for (i = 0; i < n - 1; i++) {

// Find the minimum element in


// unsorted array
min_idx = i;
for (j = i + 1; j < n; j++) {
if (arr[j] < arr[min_idx])
min_idx = j;
}

// Swap the found minimum element


// with the first element
if (min_idx != i)
swap(arr[min_idx], arr[i]);
}
}

// Function to print an array


void printArray(int arr[], int size)
{
int i;
for (i = 0; i < size; i++) {
cout << arr[i] << " ";
cout << endl;
}
}

// Driver program
int main()
{
int arr[] = { 64, 25, 12, 22, 11 };
int n = sizeof(arr) / sizeof(arr[0]);

// Function Call
selectionSort(arr, n);
cout << "Sorted array: \n";
printArray(arr, n);
return 0;
}

// This is code is contributed by rathbhupendra

Output
Sorted array:
11 12 22 25 64

1st Given

-7 3 8 -4 1 2 6
2nd Given

3 6 -8 9 1 2

You might also like