sorting algorithms
DESCRIPTION
Sorting Algorithms. Selection Sort: Array-Based Lists. List sorted by selecting elements in the list Select elements one at a time Move elements to their proper positions Selection sort operation Find location of the smallest element in unsorted list portion - PowerPoint PPT PresentationTRANSCRIPT
1
Sorting Algorithms
2
Selection Sort: Array-Based Lists
• List sorted by selecting elements in the list– Select elements one at a time– Move elements to their proper positions
• Selection sort operation– Find location of the smallest element in unsorted list
portion• Move it to top of unsorted portion of the list
– First time: locate smallest item in the entire list– Second time: locate smallest item in the list starting
from the second element in the list, and so on.
3
List of 8 elements
Elements of list during the first iteration
Elements of list during the second iteration
Quick Sort
5 7 11 6 15 9 3 2 0 1 2 3 4 5 6 7
Mid = (0 + 7) /2 = 3
Swap between List[0] and List[mid]
Quick Sort
6 7 11 5 15 9 3 2 0 1 2 3 4 5 6 7
Mid = (0 + 7) /2 = 3
pivot = List [0]= 6
Swap between List[0] and List[mid]
SmallIndex=0
for (n= 1 ; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap between List[SmallIndex] and List [n]
}
n
smallIndex= 0
Quick Sort
6 7 11 5 15 9 3 2 0 1 2 3 4 5 6 7
Mid = (0 + 7) /2 = 3
pivot = List [0]= 6
Swap between List[0] and List[mid]
SmallIndex=0
for (n= 1 ; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap between List[SmallIndex] and List [n]
}
n
smallIndex= 0
Quick Sort
6 7 11 5 15 9 3 2 0 1 2 3 4 5 6 7
Mid = (0 + 7) /2 = 3
pivot = List [0]= 6
Swap between List[0] and List[mid]
SmallIndex=0
for (n= 1 ; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap between List[SmallIndex] and List [n]
}
n
smallIndex= 1
Quick Sort
6 5 11 7 15 9 3 2 0 1 2 3 4 5 6 7
Mid = (0 + 7) /2 = 3
pivot = List [0]= 6
Swap between List[0] and List[mid]
SmallIndex=0
for (n= 1 ; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap between List[SmallIndex] and List [n]
}
n
smallIndex= 1
Quick Sort
6 5 11 7 15 9 3 2 0 1 2 3 4 5 6 7
Mid = (0 + 7) /2 = 3
pivot = List [0]= 6
Swap between List[0] and List[mid]
SmallIndex=0
for (n= 1 ; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap between List[SmallIndex] and List [n]
}
n
smallIndex= 1
Quick Sort
6 5 11 7 15 9 3 2 0 1 2 3 4 5 6 7
Mid = (0 + 7) /2 = 3
pivot = List [0]= 6
Swap between List[0] and List[mid]
SmallIndex=0
for (n= 1 ; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap between List[SmallIndex] and List [n]
}
n
smallIndex= 1
Quick Sort
6 5 11 7 15 9 3 2 0 1 2 3 4 5 6 7
Mid = (0 + 7) /2 = 3
pivot = List [0]= 6
Swap between List[0] and List[mid]
SmallIndex=0
for (n= 1 ; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap between List[SmallIndex] and List [n]
}
n
smallIndex= 2
Quick Sort
6 5 3 7 15 9 11 2 0 1 2 3 4 5 6 7
Mid = (0 + 7) /2 = 3
pivot = List [0]= 6
Swap between List[0] and List[mid]
SmallIndex=0
for (n= 1 ; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap between List[SmallIndex] and List [n]
}
n
smallIndex= 2
Quick Sort
6 5 3 7 15 9 11 2 0 1 2 3 4 5 6 7
Mid = (0 + 7) /2 = 3
pivot = List [0]= 6
Swap between List[0] and List[mid]
SmallIndex=0
for (n= 1 ; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap between List[SmallIndex] and List [n]
}
n
smallIndex= 3
Quick Sort
6 5 3 2 15 9 11 7 0 1 2 3 4 5 6 7
Mid = (0 + 7) /2 = 3
pivot = List [0]= 6
Swap between List[0] and List[mid]
SmallIndex=0
for (n= 1 ; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap between List[SmallIndex] and List [n]
}
n
smallIndex= 3
The Last Step for this level is : Swap between
List[smallindex] and List[0]
Quick Sort
2 5 3 6 15 9 11 7 0 1 2 3 4 5 6 7
Mid = (0 + 7) /2 = 3
pivot = List [0]= 6
Swap between List[0] and List[mid]
SmallIndex=0
for (n= 1 ; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap between List[SmallIndex] and List [n]
}
n
smallIndex= 3
The Last Step for this level is : Swap between
List[smallindex] and List[0]
Quick Sort
2 5 3 6 15 9 11 7 0 1 2 3 4 5 6 7
Now We are sure that number 6 is in the rigth place
We need to complete the QuickSort
2 5 3 and 15 9 11 7
Quick Sort
2 5 3 6 15 9 11 7 0 1 2 3 4 5 6 7
2 5 3 15 9 11 7 0 1 2 4 5 6 7
Mid= (0 + 2) /2 =1
Swap List[0] and List[mid]
Pivot= List[0]= 5
For( n=1; n<=2; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap List[SamllIndext] with List[n]
}
Mid= (4 + 7) /2 =5
Swap List[4] and List[mid]
Pivot= List[4]= 9
For( n=5; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap List[SamllIndext] with List[n]
}
Quick Sort
2 5 3 6 15 9 11 7
5 2 3 15 9 11 7
Mid= (0 + 2) /2 =1
Swap List[0] and List[mid]
Pivot= List[0]= 5
For( n=1; n<=2; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap List[SamllIndext] with List[n]
}
Mid= (4 + 7) /2 =5
Swap List[4] and List[mid]
Pivot= List[4]= 9
For( n=5; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap List[SamllIndext] with List[n]
}
0 1 2 3 4 5 6 7
0 1 2 4 5 6 7
Quick Sort
2 5 3 6 15 9 11 7
3 2 5 15 9 11 7
Mid= (0 + 2) /2 =1
Swap List[0] and List[mid]
Pivot= List[0]= 5
For( n=1; n<=2; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap List[SamllIndext] with List[n]
}
Mid= (4 + 7) /2 =5
Swap List[4] and List[mid]
Pivot= List[4]= 9
For( n=5; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap List[SamllIndext] with List[n]
}
0 1 2 3 4 5 6 7
0 1 2 4 5 6 7
Quick Sort
2 5 3 6 15 9 11 7
3 2 5 9 15 11 7
Mid= (0 + 2) /2 =1
Swap List[0] and List[mid]
Pivot= List[0]= 5
For( n=1; n<=2; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap List[SamllIndext] with List[n]
}
Mid= (4 + 7) /2 =5
Swap List[4] and List[mid]
Pivot= List[4]= 9
For( n=5; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap List[SamllIndext] with List[n]
}
0 1 2 3 4 5 6 7
0 1 2 4 5 6 7
Quick Sort
2 5 3 6 15 9 11 7
3 2 5 9 7 11 15
Mid= (0 + 2) /2 =1
Swap List[0] and List[mid]
Pivot= List[0]= 5
For( n=1; n<=2; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap List[SamllIndext] with List[n]
}
Mid= (4 + 7) /2 =5
Swap List[4] and List[mid]
Pivot= List[4]= 9
For( n=5; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap List[SamllIndext] with List[n]
}
0 1 2 3 4 5 6 7
0 1 2 4 5 6 7
Quick Sort
2 5 3 6 15 9 11 7
3 2 5 7 9 11 15
Mid= (0 + 2) /2 =1
Swap List[0] and List[mid]
Pivot= List[0]= 5
For( n=1; n<=2; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap List[SamllIndext] with List[n]
}
Mid= (4 + 7) /2 =5
Swap List[4] and List[mid]
Pivot= List[4]= 9
For( n=5; n<=7; n++)
If(List[n] < pivot)
{
SmallIndex++;
Swap List[SamllIndext] with List[n]
}
0 1 2 3 4 5 6 7
0 1 2 4 5 6 7
Quick Sort
2 5 3 6 15 9 11 7
3 2 5 7 9 11 15
In this Level we are sure that
Number 5 and Number 9 in the right places
Now we have the following 4 array
3, 2 and Nothing and 7 and 11 ,15
0 1 2 3 4 5 6 7
0 1 2 4 5 6 7
Quick Sort
2 5 3 6 15 9 11 7
3 2 5 7 9 11 15
Mid = (0+1)/2= 0
Swap List[0] and List[mid]
Pivot =List[0]
For (n=1; n<=1; n++)
If(List[n]<pivot)
{
SmallIndex++;
Do the Swap....
}
3 2 7 11 15 0 1 4 6 7
Do NothingMid = (6+7)/2= 6
Swap List[6] and List[mid]
Pivot =List[6]
For (n=7; n<=7; n++)
If(List[n]<pivot)
{
SmallIndex++;
Do the Swap....
}
0 1 2 3 4 5 6 7
0 1 2 4 5 6 7
Quick Sort
2 5 3 6 15 9 11 7
3 2 5 7 9 11 15
2 3 7 11 15 0 1 4 6 7
3 15 1 7
2 3 5 6 7 9 11 15 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0 1 2 4 5 6 7