Selection sort
is also very easy and time taking fundamental algorithm of sorting .The logic behind this is simple . Like , we need to select the smallest element and assign that value to the appropriate index .
It follows the following algorithm :
* Selection sort :
Given a vector K with N elements :
o) PASS : pass number position of the first element of vector to be examined in pass
o) iMin : index of the smallest number
o) I : idices !
Step 1 : [Loop on pass index]
Repeat thru step 4 for PASS = 1,2,3,...,N-1
Step 2 : [Initialize minimum index]
iMin = PASS
Step 3 : [Make a pass and obtain element with smallest value]
Repeat for I = PASS+1,PASS+2,...,N
If K[I] < K[iMin]
Then iMin = I
Step 4 : [Exchange elements]
If iMin =/= PASS
Then K[PASS] <-> K[iMin]
Step 5 : [Finished]
Try to write a code for it , else copy the code given below and check !
C Program : Selection Sort
//selection sort
#include < stdio.h >
void main()
{
int i,iMin,j,k,temp,n;// declaring required variables
printf("Enter number of elements :");
scanf("%d",&n);
int array[n];
printf("Enter the elements :\n");
for(i=0;i < n;i++)//getting input from user as usual
{
printf("Element %d : ",i+1);
scanf("%d",&array[i]);
}
/* Selection sort */
for(i=0;i < n-1;i++)// outer loop : lets call it a pass
{
iMin = i;/* Changing index for minimum of the array elements */
for(j=i+1;j < n;j++)/*for j < i+1 , all indices are sorted with the appropriate value*/
{
if(array[j] < array[iMin])/* choosing the minimum */
{
iMin = j;
}
}
temp = array[i];
array[i] = array[iMin];/*Swapping of minimum value to appropriate index*/
array[iMin] = temp;
}
printf("Here is the sorted array !\n");// printing result
for(i=0;i < n;i++)
{
printf("%d ",array[i]);
}
}
For addition details :
You can always see what computer is doing .
For ex. add another loop printing the array after every pass , like this ->
Keep in mind , there is a chance of silly mistake
### Don't use iterator " i " for printing intermediate results , this disturbs the value of i and cause an Error .
After printing intermediates we can clearly see that , each time the lowest one is replaced to an appropriate index !
I hope you enjoyed reading this !
Any suggestions and comments are always accepted .
No comments :
Post a Comment