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

C Programming Sorting

The document discusses sorting algorithms, specifically focusing on selection sort and bubble sort. It explains the process of sorting an array in both increasing and decreasing order, providing examples and pseudocode for each sorting method. The selection sort method involves finding the smallest element and swapping it, while bubble sort compares neighboring elements and swaps them if they are out of order.

Uploaded by

ABHISHEK GOUTAM
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

C Programming Sorting

The document discusses sorting algorithms, specifically focusing on selection sort and bubble sort. It explains the process of sorting an array in both increasing and decreasing order, providing examples and pseudocode for each sorting method. The selection sort method involves finding the smallest element and swapping it, while bubble sort compares neighboring elements and swaps them if they are out of order.

Uploaded by

ABHISHEK GOUTAM
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 85

CS1101: Foundations of Programming

Sorting

Dept. of Computer Science & Engineering


Indian Institute of Technology Patna

IIT Patna 1
Sorting problem
• Given an array:a[0], a[1], ... , a[size-1] reorder the element such
that a[0] <= a[1] <= ... <= a[size-1]
• The list becomes in increasing (non-decreasing or ascending) order
• We can also sort the element in decreasing order
• We prefer not to use additional arrays for the element rearrangement
• Example:
• Original array: 43 24 59 57 98 34 12 61
• Increasing order: 12 24 34 43 57 59 61 98
• Decreasing order: 98 61 59 57 43 34 24 12

IIT Patna 2
Selection sort
• Steps:
• Initialize k=0
• Find the smallest element min in the array x[k,...,size-1]
• Swap the smallest element with x[k], then increase k

IIT Patna 3
Selection sort
int minloc(int x[], int k, int size){ int selsort(int x[], int size){
int j, pos; int k, tmp, m;
pos = k; for(k=0; k<size-1; k++){
for(j=k+1; j<size; j++) m = minloc(x, k, size);
if(x[j] < x[pos]) tmp = x[k];
pos = j; x[k] = x[m];
return pos; x[m] = tmp;
} }
}

IIT Patna 4
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7

1 9 6 5 8 2 3 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7

1 9 6 5 8 2 3 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7

1 9 6 5 8 2 3 7

1 2 6 5 8 9 3 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7

1 9 6 5 8 2 3 7

1 2 6 5 8 9 3 7

1 2 3 5 8 9 6 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7

1 9 6 5 8 2 3 7

1 2 6 5 8 9 3 7

1 2 3 5 8 9 6 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7

1 9 6 5 8 2 3 7

1 2 6 5 8 9 3 7

1 2 3 5 8 9 6 7

1 2 3 5 8 9 6 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7

1 9 6 5 8 2 3 7

1 2 6 5 8 9 3 7

1 2 3 5 8 9 6 7

1 2 3 5 8 9 6 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7

1 9 6 5 8 2 3 7

1 2 6 5 8 9 3 7

1 2 3 5 8 9 6 7

1 2 3 5 8 9 6 7

1 2 3 5 6 9 8 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7

1 9 6 5 8 2 3 7

1 2 6 5 8 9 3 7

1 2 3 5 8 9 6 7

1 2 3 5 8 9 6 7

1 2 3 5 6 9 8 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7 1 2 3 5 6 7 8 9

1 9 6 5 8 2 3 7

1 2 6 5 8 9 3 7

1 2 3 5 8 9 6 7

1 2 3 5 8 9 6 7

1 2 3 5 6 9 8 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7 1 2 3 5 6 7 8 9

1 9 6 5 8 2 3 7

1 2 6 5 8 9 3 7

1 2 3 5 8 9 6 7

1 2 3 5 8 9 6 7

1 2 3 5 6 9 8 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7 1 2 3 5 6 7 8 9

1 9 6 5 8 2 3 7 1 2 3 5 6 7 8 9

1 2 6 5 8 9 3 7

1 2 3 5 8 9 6 7

1 2 3 5 8 9 6 7

1 2 3 5 6 9 8 7

IIT Patna 5
Selection sort
0 1 2 3 4 5 6 7
3 9 6 5 8 2 1 7 1 2 3 5 6 7 8 9

1 9 6 5 8 2 3 7 1 2 3 5 6 7 8 9

1 2 6 5 8 9 3 7

1 2 3 5 8 9 6 7

1 2 3 5 8 9 6 7

1 2 3 5 6 9 8 7

IIT Patna 5
Bubble sort
• Basic idea
• In every pass, we go on comparing the neighboring pairs and swap them if
out of order
• At the end of each iteration the largest element will settle at the last position
• Repeat above steps excluding the last element

IIT Patna 6
Bubble sort
void bsort (int x[], int size){
int t;
for (i = 0; i < size; i++)
for (j = 0; j < size-i-1; j++)
if (x[j] > x[j+1]) {
// swap a[j] and a[j+1]
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}

IIT Patna 7
Bubble sort
71 44 34 56 87 93 23 12

IIT Patna 8
Bubble sort
71 44 34 56 87 93 23 12

IIT Patna 8
Bubble sort
44
71 44
71 34 56 87 93 23 12

IIT Patna 8
Bubble sort
44
71 44
71 34 56 87 93 23 12

IIT Patna 8
Bubble sort
44
71 34
44
71 34
71 56 87 93 23 12

IIT Patna 8
Bubble sort
44
71 34
44
71 34
71 56 87 93 23 12

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 93 23 12

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 93 23 12

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 93 23 12

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 93 23 12

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 93 23 12

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 93 23 12

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 93
23 12

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 93
23 12

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44 34 56 71 87 23 12 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44 34 56 71 87 23 12 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87 23 12 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87 23 12 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87 23 12 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87 23 12 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87 23 12 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87 23 12 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87 23 12 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87 23 12 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87 12 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87 12 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 71 23 12 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 71 23 12 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 71 23 12 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 71 23 12 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 71 23 12 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 71 23 12 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 71 23 12 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 71 23 12 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71 12 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71 12 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56 23 12 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56 23 12 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56 23 12 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56 23 12 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56 23 12 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56 23 12 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56 12 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56 12 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44 23 12 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44 23 12 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44 23 12 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44 23 12 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44
23 23
44 12 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44
23 23
44 12 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44
23 23
44
12 44
12 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44
23 23
44
12 44
12 56 71 87 93

34 23 12 44 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44
23 23
44
12 44
12 56 71 87 93

34 23 12 44 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44
23 23
44
12 44
12 56 71 87 93

34
23 23
34 12 44 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44
23 23
44
12 44
12 56 71 87 93

34
23 23
34 12 44 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44
23 23
44
12 44
12 56 71 87 93

34
23 23
34
12 34
12 44 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44
23 23
44
12 44
12 56 71 87 93

34
23 23
34
12 34
12 44 56 71 87 93

23 12 34 44 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44
23 23
44
12 44
12 56 71 87 93

34
23 23
34
12 34
12 44 56 71 87 93

23 12 34 44 56 71 87 93

IIT Patna 8
Bubble sort
44
71 34
44
71 56
34
71 56
71 87 23
93 23
93
12 93
12

44
34 34
44 56 71 87
23 23
87
12 87
12 93

34 44 56 23
71 23
71
12 71
12 87 93

34 44 56
23 23
56
12 56
12 71 87 93

34 44
23 23
44
12 44
12 56 71 87 93

34
23 23
34
12 34
12 44 56 71 87 93

23
12 23
12 34 44 56 71 87 93

IIT Patna 8
Other sorting techniques
• Two other popular techniques are
• Merge-sort
• Quick-sort
• Explore yourself!!

IIT Patna 9

You might also like