0
2.4kviews
Analysis Of Selection Sort
1 Answer
0
18views
  • Selection sort is a simple sorting algorithm.

    • This sorting algorithm is an in-place comparison-based algorithm in which the list is divided into two parts, the sorted part at the left end and the unsorted part at the right end. Initially,the sorted part is empty and the unsorted part is the entire list.

    • This algorithm is not suitable for large data sets as its average and worst case complexities are of Ο(n 2 ), where n is the number of items.

How Selection Sort Works?

Consider the following depicted array as an example.

enter image description here

For the first position in the sorted list, the whole list is scanned sequentially. The first position where 14 is stored presently, we search the whole list and find that 10 is the lowest value.

enter image description here

So we replace 14 with 10. After one iteration 10, which happens to be the minimum value in the list, appears in the first position of the sorted list.

enter image description here

second position,where 33 is residing,we start scanning the rest of the list in a linear manner.

enter image description here

We find that 14 is the second lowest value in the list and it should appear at the second place. We swap these values.

enter image description here

After two iterations, two least values are positioned at the beginning in a sorted manner.

enter image description here

The same process is applied to the rest of the items in the array.

Following is a pictorial depiction of the entire sorting process −

enter image description here

Now, let us learn some programming aspects of selection sort

Algorithm

Step 1 − Set MIN to location 0

Step 2 − Search the minimum element in the list

Step 3 − Swap with value at location MIN

Step 4 − Increment MIN to point to next element

Step 5 − Repeat until list is sorted

Pseudo code

procedure selection sort

list : array of items

n : size of list

for i = 1 to n - 1

/* set current element as minimum*/

min = i

/* check the element to be minimum */

for j = i+1 to n

if list[j] < list[min] then

min = j;

end if

end for

/* swap the minimum element with the current element*/

if indexMin != i then

swap list[min] and list[i]

end if

end for

end procedure

INSERTION SORT

  • This is an in-place comparison-based sorting algorithm

  • Here, a sub-list is maintained which is always sorted. For example, the lower part of an array is maintained to be sorted.

  • An element which is to be 'inserted in this sorted sub-list, has to find its appropriate place and then it has to be inserted there. Hence the name, insertion sort

The array is searched sequentially and unsorted items are moved and inserted into the sorted sub-list (in the same array).

This algorithm is not suitable for large data sets as its average and worst case complexity are of Ο(n 2 ), where n is the number of items.

How Insertion Sort Works?

We take an unsorted array for our example.

enter image description here

Insertion sort compares the first two elements.

enter image description here

It finds that both 14 and 33 are already in ascending order. For now, 14 is in sorted sub-list.

enter image description here

Insertion sort moves ahead and compares 33 with 27.

enter image description here

And finds that 33 is not in the correct position.

enter image description here

It swaps 33 with 27. It also checks with all the elements of sorted sub-list. Here we see that the sorted sub-list has only one element 14, and 27 is greater than 14. Hence, the sorted sub-list remains sorted after swapping.

enter image description here

By now we have 14 and 27 in the sorted sub-list. Next, it compares 33 with 10.

enter image description here

These values are not in a sorted order.

enter image description here

So we swap them.

enter image description here

However, swapping makes 27 and 10 unsorted.

enter image description here

Hence, we swap them too.

enter image description here

Again we find 14 and 10 in an unsorted order.

enter image description here

We swap them again. By the end of third iteration, we have a sorted sub-list of 4 items.

enter image description here

This process goes on until all the unsorted values are covered in a sorted sub-list. Now we shall see some programming aspects of insertion sort.

Algorithm

Now we have a bigger picture of how this sorting technique works, so we can derive simple

steps by which we can achieve insertion sort.

Step 1 − If it is the first element, it is already sorted. Return 1;

Step 2 − Pick next element

Step 3 − Compare with all elements in the sorted sub-list

Step 4 − Shift all the elements in the sorted sub-list that is greater than the value to be sorted

Step 5 − Insert the value

Step 6 − Repeat until list is sorted

Pseudo code

Procedure insertionSort( A : array of items )

int holePosition

int valueToInsert

for i = 1 to length(A) inclusive do:

/* select value to be inserted */

valueToInsert = A[i]

holePosition = i

/*locate hole position for the element to be inserted */

while holePosition > 0 and A[holePosition-1] > valueToInsert do:

A[holePosition] = A[holePosition-1]

holePosition = holePosition -1

end while

/* insert the number at hole position */

A[holePosition] = valueToInsert

end for

end procedure

Please log in to add an answer.