The document discusses various searching and sorting algorithms. It describes linear search, binary search, and interpolation search for searching unsorted and sorted lists. It also explains different sorting algorithms like bubble sort, selection sort, insertion sort, quicksort, shellsort, heap sort, and merge sort. Linear search searches sequentially while binary search uses divide and conquer. Sorting algorithms like bubble sort, selection sort, and insertion sort are in-place and have quadratic time complexity in the worst case. Quicksort, mergesort, and heapsort generally have better performance.
3. LINEAR SEARCH
Basic and simplest search algorithm
Searches an element or value from a list in a sequential order
till the desired element or value is found or the end of the list is
encountered
On successful search it returns the index of the value else it
returns -1
Search is applied on unsorted list when there are fewer
elements in the list
Time consuming and Inefficient for big lists
5. BINARY SEARCH
Improvement over the sequential search
Work only if the list is sorted
Approach employed is divide and conquer
Here, the approximate middle element of the array is located and its
value is examined
If its value is too high, then the value of the middle element of the first
half of the array is examined and the procedure is repeated until the
required item is found
If the value is too low, then the value of the middle element of the
second half of the array is checked and the procedure is repeated
6.
7. INTERPOLATION SEARCH
In Binary search, mid = (high + low)/2
Why the middle element?
What if we had a better estimate of the location of the key?
Binary Search always checks the value at middle index. But Interpolation
search may check at different locations based on the value of element
being searched
Interpolation search uses the values of arr[low] and arr[high] to estimate
the position of the key, also known as probing
8. INTERPOLATION SEARCH
1 2 3 4 5 6 7 8 9 10
Assuming a linear distribution of keys in the array
mid = low + ((key - arr[low]) * (high - low)) / (arr[high] -
arr[low])
key
mid = 0+[(3-1)*(9-0)] / (10-1)=2
So arr[2]=3 which is the key value
Search is success:
1 2 3 4 5 6 7 8 9 10
10. BUBBLE SORT
Bubble sort works by comparing each item in the list with the
item next to it and swapping them if required
The algorithm repeats this process until it makes a pass all the
way through the list without swapping any items (in other words,
all items are in the correct order)
This causes larger values to ‘bubble’ to the end of the list while
smaller values ‘sink’ towards the beginning of the list
In brief, the bubble sort derives its name from the fact that the
smallest data item bubbles up to the top of the sorted array
12. SELECTION SORT
Selection sort algorithm sorts an array by repeatedly finding the
minimum element (considering ascending order) from unsorted
part and putting it at the beginning
Algorithm maintains two subarrays in a given array
a.sorted array
b.unsorted array
In every iteration of selection sort, the minimum element
(considering ascending order)from the unsorted subarray is
picked and moved to the sorted subarray
13. 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
14. SELECTION SORT
Index<length-1
Find smallest element
In array between Index
and length-1
Swap smallest element
found above with
element at Index
Index++
start
end
Index=0
TRUE
FALSE
15. INSERTION SORT
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 'insert'ed 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)
16. ALGORITHM
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
This process goes on…….
17. QUICK SORT
Based on partitioning of array of data into smaller arrays
A large array is partitioned into two arrays
One of which holds values smaller than the specified value, say
pivot, based on which the partition is made
Another array holds values greater than the pivot value
18. ALGORITHM
Step 1 − Choose the highest index value has pivot
Step 2 − Take two variables to point left and right of the list excluding pivot
Step 3 − left points to the low index
Step 4 − right points to the high
Step 5 − while value at left is less than pivot move right
Step 6 − while value at right is greater than pivot move left
Step 7 − if both step 5 and step 6 does not match swap left and right
Step 8 − if left right, the point where they met is new pivot≥
19.
20. SHELL SORT
Highly efficient sorting algorithm and is based on insertion sort
algorithm
Avoids large shifts as in case of insertion sort, if the smaller
value is to the far right and has to be moved to the far left
Uses insertion sort on a widely spread elements, first to sort
them and then sorts the less widely spaced elements
21. ALGORITHM
Step 1 − Initialize the value of h
Step 2 − Divide the list into smaller sub-list of
equal Interval h
Step 3 − Sort these sub-lists using insertion sort
Step 3 − Repeat until complete list is sorted
22. HEAP SORT
Heap Sort is one of the best sorting methods being in-place and
with no quadratic worst-case scenarios. Heap sort algorithm is
divided into two basic parts
Creating a Heap of the unsorted list
Then a sorted array is created by repeatedly removing the
largest/smallest element from the heap, and inserting it into the
array
The heap is reconstructed after each removal
23. Max Heap Construction Algorithm
Step 1 Create a new node at the end of heap.
Step 2 Assign new value to the node.
Step 3 Compare the value of this child node with its
parent.
Step 4 If value of parent is less than child,then
swap them.
Step 5 Repeat step 3 & 4 until Heap property
holds.
Max Heap Deletion Algorithm
Step 1 − Remove root node.
Step 2 − Move the last element of last level to root.
Step 3 − Compare the value of this child node with
its parent.
Step 4 − If value of parent is less than child, then
swap them.
Step 5 − Re peat step 3 & 4 until Heap property
holds.
24.
25. MERGE SORT
Sorting technique based on divide and conquer technique.
Merge sort first divides the array into equal halves and then combines
them in a sorted manner.
ALGORITHM
Step 1 − if it is only one element in the list it is already sorted, return.
Step 2 − divide the list recursively into two halves until it can no more
be divided.
Step 3 − merge the smaller lists into new list in sorted order.
26. ALGORITHM
Step 1 − if it is only one element in the list it is already sorted, return.
Step 2 − divide the list recursively into two halves until it can no more be divided.
Step 3 − merge the smaller lists into new list in sorted order.