IT Data-Structure-Sorting-Techniques.pptx

SuryaBasnet3 10 views 29 slides Sep 17, 2025
Slide 1
Slide 1 of 29
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29

About This Presentation

Different types of
sorting in Data structure and algorithm


Slide Content

Data Structure - Sorting Techniques

Leaning Objectives Describe sorting Discuss the type of sort Applications of sorting Apply the bubble sort algorithm in determine the output

Sorting refers to arranging data in a particular format. Sorting algorithm specifies the way to arrange data in a particular order. Most common orders are in numerical or lexicographical order . The importance of sorting lies in the fact that data searching can be optimized to a very high level, if data is stored in a sorted manner. is also used to represent data in more readable formats. Following are some of the examples of sorting in real-life scenarios − Telephone Directory  − The telephone directory stores the telephone numbers of people sorted by their names, so that the names can be searched easily. Dictionary  − The dictionary stores words in an alphabetical order so that searching of any word becomes easy.

In-place Sorting and Not-in-place Sorting

Sorting algorithms may require some extra space for comparison and temporary storage of few data elements. in-place sorting do not require any extra space and sorting is said to happen in-place, or for example, within the array itself. Example - Bubble sort not-in-place sorting the program requires space which is more than or equal to the elements being sorted. Sorting which uses equal or more space is called . Example - Merge-sort

Stable and Not Stable Sorting Stable sorting does not change the sequence of similar content in which they appear after sorting the contents .

unstable sorting changes the sequence of similar content in which they appear after sorting the contents.

Stability of an algorithm matters when we wish to maintain the sequence of original elements, like in a tuple for example.

Adaptive and Non-Adaptive Sorting Algorithm Adaptive if it takes advantage of already 'sorted' elements in the list that is to be sorted. while sorting if the source list has some element already sorted, adaptive algorithms will take this into account and will try not to re-order them. non-adaptive algorithm is one which does not take into account the elements which are already sorted. They try to force every single element to be re-ordered to confirm their sortedness .

Important Terms

Increasing Order A sequence of values is said to be in  increasing order , if the successive element is greater than the previous one. For example, 1, 3, 4, 6, 8, 9 are in increasing order, as every next element is greater than the previous element. Decreasing Order A sequence of values is said to be in  decreasing order , if the successive element is less than the current one. For example, 9, 8, 6, 4, 3, 1 are in decreasing order, as every next element is less than the previous element.

Non-Increasing Order A sequence of values is said to be in  non-increasing order , if the successive element is less than or equal to its previous element in the sequence. This order occurs when the sequence contains duplicate values. For example, 9, 8, 6, 3, 3, 1 are in non-increasing order, as every next element is less than or equal to (in case of 3) but not greater than any previous element. Non-Decreasing Order A sequence of values is said to be in  non-decreasing order , if the successive element is greater than or equal to its previous element in the sequence. This order occurs when the sequence contains duplicate values. For example, 1, 3, 3, 6, 8, 9 are in non-decreasing order, as every next element is greater than or equal to (in case of 3) but not less than the previous one.

Bubble Sort Algorithm

Bubble sort is a simple sorting algorithm. is comparison-based algorithm in which each pair of adjacent elements is compared and the elements are swapped if they are not in order. 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. This is the most simplest algorithm and inefficient

Application of Bubble Sort used in educational purposes for helping students understand the foundations of sorting. used to identify whether the list is already sorted. When the list is already sorted (which is the best-case scenario), the complexity of bubble sort is only O(n). In real life, bubble sort can be visualised when people in a queue wanting to be standing in a height wise sorted manner swap their positions among themselves until everyone is standing based on increasing order of heights.

Bubble Sort Algorithm compare adjacent elements and see if their order is wrong ( i.e  a[i] > a[j] for 1 <= i < j <= size of array; if array is to be in ascending order, and vice-versa). If yes, then swap them.

Bubble Sort Algorithm Let us say, we have an array of length n. To sort this array we do the above step (swapping) for  n - 1  passes. In simple terms, first , the largest element goes at its extreme right place then, second largest to the last by one place, and so on. In the ith pass, the ith largest element goes at its right place in the array by swappings . In mathematical terms, in  ith  pass, at least one element from  (n - i + 1)  elements from start will go at its right place. That element will be the ith  (for 1 <= i <= n - 1) largest element of the array. Because in the  ith  pass of the array, in the  jth  iteration (for 1 <= j <= n - i), we are checking if a[j] > a[j + 1], and a[j] will always be greater than a[j + 1] when it is the largest element in range [1, n - i + 1]. Now we will swap it. This will continue until  ith  largest element is at the (n - i + 1) th position of the array.

How Bubble Sort Works?

We take an unsorted array for our example. Bubble sort takes Ο(n 2 ) time so we're keeping it short and precise. Bubble sort starts with very first two elements, comparing them to check which one is greater.

In this case, value 33 is greater than 14, so it is already in sorted locations. Next, we compare 33 with 27. We find that 27 is smaller than 33 and these two values must be swapped.

The new array should look like this − Next we compare 33 and 35. We find that both are in already sorted positions.

Then we move to the next two values, 35 and 10. We know then that 10 is smaller 35. Hence they are not sorted. We swap these values. We find that we have reached the end of the array. After one iteration, the array should look like this −

Notice that after each iteration, at least one value moves at the end. And when there's no swap required, bubble sorts learns that an array is completely sorted. Now we should look into some practical aspects of bubble sort.

Algorithm

Bubble Sort compares each pair of array element unless the whole array is completely sorted in an ascending order. This may cause a few complexity issues like what if the array needs no more swapping as all the elements are already ascending. To ease-out the issue use one flag variable  swapped  which will help if any swap has happened or not. If no swap has occurred, i.e. the array requires no more processing to be sorted, it will come out of the loop.

Complexity Analysis -TC of Bubble sort Best case scenario The best case scenario occurs when the array is already sorted. no swapping will happen in the first iteration (The swapped variable will be false when this happens, we break from the loop after the very first iteration. time complexity in the best case scenario is  O(n)  because it has to traverse through all the elements once.

Worst case and Average case scenario n-1  comparisons are done in the 1st pass, n-2 in 2nd pass, n-3 in 3rd pass and so on. the total number of comparisons will be: Sum = (n-1) + (n-2) + (n-3) + ..... + 3 + 2 + 1 Sum = n(n-1)/2 the time complexity is of the order  n 2  or  O(n 2 ) .

Space Complexity of Bubble sort The space complexity for the algorithm is  O(1) because only a single additional memory space is required i.e. for temporary variable used for swapping

procedure bubbleSort ( list : array of items ) loop = list . count ; for i = to loop - 1 do : swapped = false for j = to loop - 1 do : /* compare the adjacent elements */ if list [ j ] > list [ j + 1 ] then /* swap them */ swap ( list [ j ], list [ j + 1 ] ) swapped = true end if end for /*if no number was swapped that means array is sorted now, break the loop.*/ if ( not swapped ) then break end if end for end procedure return list