Sorting algorithm in c
Sorting algorithm in c
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.
Selection Sort Algorithm | Swapping 1st element with the minimum in array
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.
Selection Sort Algorithm | swapping i=1 with the next minimum element
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.
Selection Sort Algorithm | swapping i=2 with the next minimum element
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.
Selection Sort Algorithm | swapping i=3 with the next minimum element
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.
Second Pass:
Place the second largest element at correct position
Bubble Sort Algorithm : Placing the second largest element at correct position
Third Pass:
Place the remaining two elements at their correct positions.
positions
Sorted array:
11 12 22 25 34 64 90
Yes, Bubble sort performs the swapping of adjacent pairs without the use of
any major data structure. Hence Bubble sort algorithm is an in-place
algorithm.
Is the Bubble sort algorithm stable?
Due to its simplicity, bubble sort is often used to introduce the concept of a
sorting algorithm. In computer graphics, it is popular for its capability to
detect a tiny error (like a swap of just two elements) in almost-sorted arrays
and fix it with just linear complexity (2n).
Insertion sort is a simple sorting algorithm that works similar to the way you
sort playing cards in your hands. The array is virtually split into a sorted and
an unsorted part. Values from the unsorted part are picked and placed at the
correct position in the sorted part.
12 11 13 5 6
First Pass:
Initially, the first two elements of the array are compared in insertion
sort.
12 11 13 5 6
Here, 12 is greater than 11 hence they are not in the ascending order
and 12 is not at its correct position. Thus, swap 11 and 12.
So, for now 11 is stored in a sorted sub-array.
11 12 13 5 6
Second Pass:
Now, move to the next two elements and compare them
11 12 13 5 6
Here, 13 is greater than 12, thus both elements seems to be in
ascending order, hence, no swapping will occur. 12 also stored in a
sorted sub-array along with 11
Third Pass:
Now, two elements are present in the sorted sub-array which
are 11 and 12
Moving forward to the next two elements which are 13 and 5
11 12 13 5 6
Both 5 and 13 are not present at their correct place so swap them
11 12 5 13 6
After swapping, elements 12 and 5 are not sorted, thus swap again
11 5 12 13 6
Here, again 11 and 5 are not sorted, hence swap again
5 11 12 13 6
Here, 5 is at its correct position
Fourth Pass:
Now, the elements which are present in the sorted sub-array are 5,
11 and 12
Moving to the next two elements 13 and 6
5 11 12 13 6
Clearly, they are not sorted, thus perform swap between both
5 11 12 6 13
Now, 6 is smaller than 12, hence, swap again
5 11 6 12 13
Here, also swapping makes 11 and 6 unsorted hence, swap again
5 6 11 13
12
Finally, the array is completely sorted.
Illustrations:
insertionSort(arr, n);
printArray(arr, n);
return 0;
}
Output
5 6 11 12 13
TimeComplexity: O(N^2)
Auxiliary Space: O(1)