lab#7
DESCRIPTION
LAB#7. Sorting. Insertion sort. Insertion sort In the outer for loop, out starts at 1 and moves right. It marks the leftmost unsorted data. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/1.jpg)
LAB#7
Sorting
![Page 2: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/2.jpg)
• Insertion sort• In the outer for loop, out starts at 1 and moves right. It marks the leftmost unsorted data.
• In the inner while loop, in starts at out and moves left, until either temp is smaller than the array element there, or it can’t go left any further.
• Each pass through the while loop shifts another sorted element one space right.
Insertion sort
![Page 3: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/3.jpg)
Insertion sortExample #1: Show the steps of sorting the following array:
8 6 1 4
8 6 1 46 8 1 46 8 1 46 1 8 41 6 8 41 6 8 41 6 4 81 4 6 81 4 6 8
![Page 4: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/4.jpg)
Insertion sortExample #2: Show the steps of sorting the following array:
3 -1 5 7
3 -1 5 2-1 3 5 2-1 3 5 2-1 3 5 2-1 3 2 5-1 2 3 5-1 2 3 5
![Page 5: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/5.jpg)
Selection sort
• Selection Sort :1. Find the minimum value in the list
2. Swap it with the value in the first position
3. Repeat the steps above for the remainder of
the list (starting at the second position and
advancing each time)
![Page 6: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/6.jpg)
Example #1: Show the steps of sorting the following array:
8 6 1 4
8 6 1 41 6 8 41 6 8 41 4 8 61 4 8 61 4 6 81 4 6 8
Selection sort
![Page 7: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/7.jpg)
Example #2: Show the steps of sorting the following array:
3 -1 5 7
3 -1 5 2-1 3 5 2-1 3 5 2-1 2 5 3-1 2 5 3-1 2 3 5-1 2 3 5
Selection sort
![Page 8: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/8.jpg)
• Bubble Sort :1. compares the first two elements
2. If the first is greater than the second, swaps
them
3. continues doing this for each pair of elements
4. Starts again with the first two elements,
repeating until no swaps have occurred on
the last pass
Bubble sort
![Page 9: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/9.jpg)
Example #1: Show the steps of sorting the following array:
8 6 1 4
8 6 1 46 8 1 46 1 8 46 1 4 81 6 4 81 4 6 81 4 6 8
Bubble sort
![Page 10: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/10.jpg)
Example #2: Show the steps of sorting the following array:
3 -1 5 7
3 -1 5 2-1 3 5 2-1 3 5 2-1 3 2 5-1 3 2 5-1 2 3 5-1 2 3 5
Bubble sort
![Page 11: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/11.jpg)
Quick sort
Quick Sort :•Quick sort is a divide and conquer algorithm. Quick sort
first divides a large list into two smaller sub-lists: the low elements and the high elements. Quick sort can then recursively sort the sub-lists.
• A Quick sort works as follows:
1.Choose a pivot value: We take the value of the middle element , but it can be any value.
2.Partition.3. Sort both part: Apply quick sort algorithm recursively to the left and the right parts.
![Page 12: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/12.jpg)
Example #1: Show the steps of sorting the following array:
3 -1 5 7
3 -1 5 23 -1 5 22 -1 5 32 -1 5 32 -1 5 32 -1 5 3-1 2 3 5
Quick sort
![Page 13: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/13.jpg)
Example #2: Show the steps of sorting the following array:
8 6 1 5 9 4
Quick sort8 6 1 5 9 44 6 1 5 9 84 6 1 5 9 84 6 1 5 9 84 1 6 5 9 84 1 6 5 9 84 1 6 5 9 84 1 6 5 9 81 4 6 5 8 91 4 6 5 8 91 4 6 5 8 91 4 5 6 8 9
![Page 14: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/14.jpg)
Merge Sort
Merge Sort :• Merge sort is a much more efficient sorting technique than the bubble Sort and the insertion Sort at least in terms of speed.
• A merge sort works as follows:1. Divide the unsorted list into two sub lists of
about half the size. Sort each sub list recursively by re-applying the merge sort.
2. Merge the two sub lists back into one sorted list.
![Page 15: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/15.jpg)
Example #1: Show the steps of sorting the following array:
6 5 3 1 8 7 2 4
Merge Sort
![Page 16: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/16.jpg)
Example #2: Show the steps of sorting the following array:
38 27 43 3 9 82 10
Merge Sort
![Page 17: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/17.jpg)
LAB#7
Searching
![Page 18: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/18.jpg)
Linear Search
Linear Search :• Linear Search : Search an array or list by checking items
one at a time.
• Linear search is usually very simple to implement, and is practical when the list has only a few elements, or when performing a single search in an unordered list.
![Page 19: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/19.jpg)
Linear Search
Linear Search :
0 1 2 3 4 5 6 7 8 9 10 11
=?12 =?12 =?12 =?12
![Page 20: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/20.jpg)
#include <iostream>using namespace std; int LinearSearch(int Array[],int Size,int ValToSearch) {
bool NotFound = true;int i = 0;while(i < Size && NotFound){ if(ValToSearch != Array[i])
i++;else NotFound = false; }
if( NotFound == false )return i;
else return -1;}
Linear Search
![Page 21: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/21.jpg)
int main(){int Number[] = { 67, 278, 463, 2, 4683, 812, 236, 38 }; int Quantity = 8;int NumberToSearch = 0; cout << "Enter the number to search: ";cin >> NumberToSearch; int i = LinearSearch(Number, Quantity, NumberToSearch);if(i == -1) cout << NumberToSearch << " was not found in the collection\n\n";else { cout << NumberToSearch << " is at the index " << i<<endl;return 0; }
Linear Search
![Page 22: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/22.jpg)
Binary Search
Binary Search :• Binary Search >>> sorted array.• Binary Search Algorithm :
1.get the middle element.2.If the middle element equals to the searched value, the
algorithm stops.3.Otherwise, two cases are possible: o searched value is less, than the middle element. Go to the
step 1 for the part of the array, before middle element. o searched value is greater, than the middle element. Go to
the step 1 for the part of the array, after middle element.
![Page 23: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/23.jpg)
Binary Search
Example Binary Search :
0 1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4
3 4
3
12
![Page 24: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/24.jpg)
Binary Search#include <iostream>using namespace std;
int binarySearch(int arr[], int value, int left, int right) {
while (left <= right){
int middle = (left + right) / 2; // compute mid point.if (arr[middle] == value)// found it. return position
return middle;else if (arr[middle] > value) // repeat search in bottom half.
right = middle - 1;else
left = middle + 1; // repeat search in top half. }
return -1;}
![Page 25: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/25.jpg)
Binary Search
void main(){int x=0;int myarray[10]={2,5,8,10,20,22,26,80,123,131};cout<<"Enter a searched value : ";cin>>x;if(binarySearch(myarray,x,0,9)!=-1)
cout<<"The searched value found at position : "<<binarySearch(myarray,x,0,9)<<endl;
elsecout<<"Not found"<<endl;
}
![Page 26: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/26.jpg)
Binary Search
void main(){int x=0;int myarray[10]={2,5,8,10,20,22,26,80,123,131};cout<<"Enter a searched value : ";cin>>x;if(binarySearch(myarray,x,0,9)!=-1)
cout<<"The searched value found at position : "<<binarySearch(myarray,x,0,9)<<endl;
elsecout<<"Not found"<<endl;
}
![Page 27: LAB#7](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815aa5550346895dc83843/html5/thumbnails/27.jpg)
Exercise
Exercise #1 :Write a C++ program that define an array myarray of type integer with the elements (10,30,5,1,90,14,50,2). Then the user can enter any number and found if it is in the array or not.
A. Use linear search.B. Edit the previous program and use binary search.