Explain The Operation And
Performance Of Sorting
And Search Algorithms
By: J. Anusdika
1
By: J.Anusdika
11
Content
• Introduction
• What is sorting?
• What is searching?
• Type of sorting algorithms
• Search algorithms
•
•
•
By: J. Anusdika 2
By: J.Anusdika
22
Introduction
• Algorithm analysis should begin with a clear statement of the task to be performed.
• This allows us both to check that the algorithm is correct and to ensure that the algorithms we
are comparing perform the same task.
• Although there are many ways that algorithms can be compared, we will focus on two that are
of primary importance to many data processing algorithms:
o Time complexity: how the number of steps required depends on the size of the
input
o Space complexity: how the amount of extra memory or storage required depends
on the size of the input.
By: J. Anusdika 3
By: J.Anusdika
33
Sorting
• 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.
• Sorting 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.
By: J.Anusdika
44
Searching
• To finding out whether a particular element is present in the list.
• 2 methods: linear search, binary search
• The method we use depends on how the elements of the list are organized
o unordered list : linear search: simple, slow
o an ordered list : binary search or linear search: complex, faster
By: J.Anusdika
55
M3.4: Demonstrate the all available sort and search
generation methods
By: J.Anusdika
66
Type of Sorting Algorithms
• Bucket sort
• Bubble sort
• Insertion sort
• Selection sort
• Heap sort
• Merge sort
By: J.Anusdika
77
Bubble Sort
• Bubble sort is a simple and well-known sorting algorithm.
• It is used in practice once in a blue moon and its main application is to make an
introduction to the sorting algorithms.
• Bubble sort is stable and adaptive.
• Algorithm
qCompare each pair of adjacent elements from the beginning of an
array and, if they are in reversed order, swap them.
qIf at least one swap has been done, repeat step 1.
•
By: J.Anusdika
88
• Example. Sort {5, 1, 3} using bubble sort.
•
•
• Unsorted
• 5 > 1, Swap
• 5 > 3, Swap
•
• Sorted
5 1 3
5 1 3
5 31
1 3 5
By: J.Anusdika
99
Bucket Sort
• Bucket sort it’s the perfect sorting algorithm for the sequence above.
• We must know in advance that the integers are fairly well distributed over an
interval. Then we can divide this interval in N equal sub-intervals.
• We’ll put each number in its corresponding bucket.
• Finally for every bucket that contains more than one number we’ll use some
linear sorting algorithm.
By: J.Anusdika
1010
• Example:
•
•
2 3 3 1 2 4
1 2 3 4
2 3
By: J.Anusdika
1111
Insertion Sort
• This is an in-place comparison-based sorting algorithm. Here, a sub-list is
maintained which is always sorted.
• An element which is to be 'inserted 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).
•
By: J.Anusdika
1212
How Insertion Sort Algorithm Works?
By: J.Anusdika
1313
Heap Sort Algorithm
• heapsort is a comparison-based sorting algorithm.
• Heapsort can be thought of as an improved selection sort: like that algorithm, it
divides its input into a sorted and an unsorted region, and it iteratively shrinks
the unsorted region by extracting the largest element and moving that to the
sorted region.
• The improvement consists of the use of a heap data structure rather than a
linear-time search to find the maximum.
By: J.Anusdika
1414
Example;
By: J.Anusdika
1515
Merge Sort
• Merge sort is a sorting technique based on divide and conquer technique. With
worst-case time complexity being Ο(n log n), it is one of the most respected
algorithms.
• Merge sort first divides the array into equal halves and then combines them in a
sorted manner.
By: J.Anusdika
1616
Linear Search
• A linear search is the basic and simple search algorithm.
• A linear search searches an element or value from an array till the desired
element or value is not found and it searches in a sequence order.
• It compares the element with all the other elements given in the list and if the
element is matched it returns the value index else it return -1.
• Linear Search is applied on the unsorted or unordered list when there are fewer
elements in a list.
By: J.Anusdika
1717
Example;
Algorithms
Linear Search ( Array A, Value x)
Step 1: Set i to 1
Step 2: if i > n then go to step 7
Step 3: if A[i] = x then go to step 6
Step 4: Set i to i + 1
Step 5: Go to Step 2
Step 6: Print Element x Found at
index i and go to step 8
Step 7: Print element not found
Step 8: Exit
By: J.Anusdika
1818
Binary Search
• Binary Search is applied on the sorted array or list.
• In binary search, we first compare the value with the elements in the middle
position of the array.
• If the value is matched, then we return the value.
• If the value is less than the middle element, then it must lie in the lower half of the
array and if it's greater than the element then it must lie in the upper half of the
array.
By: J.Anusdika
1919
Example With Implementation
• To search an element 9 from the sorted array or list.
• Code
• function findIndex(values, target)
{ return binarySearch(values, target, 0, values.length - 1); };
function binarySearch(values, target, start, end) { if (start > end) { return -1; }
var middle = Math.floor((start + end) / 2) , var value = values[middle];
if (value > target) { return binarySearch(values, target, start, middle-1); }
if (value < target) { return binarySearch(values, target, middle+1, end); }
return middle; //found! }
findIndex([2, 4, 7, 9, 13, 15], 9);
•
By: J.Anusdika
2020
Tree Search
• A Tree Search Only Works If The Data Fits Into A Tree Structure.
• The Database Starts At A Root That Goes To A Few Items, Each Of Which Goes To A
Few More Items And So On Until You Have A Tree.
Binary search tree. Lookup operation
• Search algorithm traverses the tree "in-depth", choosing appropriate way to go,
following binary search tree property and compares value of each visited node with
the one, we are looking for. Algorithm stops in two cases.
qA node with necessary value is found
qAlgorithm has no way to go
By: J.Anusdika
2121
D3.7: Draw conclusions about which one or more of
the above methods suitable for real world scenario
By: J.Anusdika
2222
Conclusion
• I can used merge sort and bubble sort for this scenario.
• Selection sort said to be better than bubble sort. So, we used bubble sort.
• Selection sort can used
qFind the smallest element, and put it to the first position.
qFind the next smallest element, and put it to the second position.
qRepeat until all elements are in the right positions.
• Bubble sort can Scan the array, swapping adjacent pair of elements if they are not in
relative order. This bubbles up the largest element to the end.
•
By: J.Anusdika
2323
Thank you
24

Data operatons & searching and sorting algorithms

  • 1.
    Explain The OperationAnd Performance Of Sorting And Search Algorithms By: J. Anusdika 1 By: J.Anusdika 11
  • 2.
    Content • Introduction • Whatis sorting? • What is searching? • Type of sorting algorithms • Search algorithms • • • By: J. Anusdika 2 By: J.Anusdika 22
  • 3.
    Introduction • Algorithm analysisshould begin with a clear statement of the task to be performed. • This allows us both to check that the algorithm is correct and to ensure that the algorithms we are comparing perform the same task. • Although there are many ways that algorithms can be compared, we will focus on two that are of primary importance to many data processing algorithms: o Time complexity: how the number of steps required depends on the size of the input o Space complexity: how the amount of extra memory or storage required depends on the size of the input. By: J. Anusdika 3 By: J.Anusdika 33
  • 4.
    Sorting • Sorting refersto 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. • Sorting 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. By: J.Anusdika 44
  • 5.
    Searching • To findingout whether a particular element is present in the list. • 2 methods: linear search, binary search • The method we use depends on how the elements of the list are organized o unordered list : linear search: simple, slow o an ordered list : binary search or linear search: complex, faster By: J.Anusdika 55
  • 6.
    M3.4: Demonstrate theall available sort and search generation methods By: J.Anusdika 66
  • 7.
    Type of SortingAlgorithms • Bucket sort • Bubble sort • Insertion sort • Selection sort • Heap sort • Merge sort By: J.Anusdika 77
  • 8.
    Bubble Sort • Bubblesort is a simple and well-known sorting algorithm. • It is used in practice once in a blue moon and its main application is to make an introduction to the sorting algorithms. • Bubble sort is stable and adaptive. • Algorithm qCompare each pair of adjacent elements from the beginning of an array and, if they are in reversed order, swap them. qIf at least one swap has been done, repeat step 1. • By: J.Anusdika 88
  • 9.
    • Example. Sort{5, 1, 3} using bubble sort. • • • Unsorted • 5 > 1, Swap • 5 > 3, Swap • • Sorted 5 1 3 5 1 3 5 31 1 3 5 By: J.Anusdika 99
  • 10.
    Bucket Sort • Bucketsort it’s the perfect sorting algorithm for the sequence above. • We must know in advance that the integers are fairly well distributed over an interval. Then we can divide this interval in N equal sub-intervals. • We’ll put each number in its corresponding bucket. • Finally for every bucket that contains more than one number we’ll use some linear sorting algorithm. By: J.Anusdika 1010
  • 11.
    • Example: • • 2 33 1 2 4 1 2 3 4 2 3 By: J.Anusdika 1111
  • 12.
    Insertion Sort • Thisis an in-place comparison-based sorting algorithm. Here, a sub-list is maintained which is always sorted. • An element which is to be 'inserted 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). • By: J.Anusdika 1212
  • 13.
    How Insertion SortAlgorithm Works? By: J.Anusdika 1313
  • 14.
    Heap Sort Algorithm •heapsort is a comparison-based sorting algorithm. • Heapsort can be thought of as an improved selection sort: like that algorithm, it divides its input into a sorted and an unsorted region, and it iteratively shrinks the unsorted region by extracting the largest element and moving that to the sorted region. • The improvement consists of the use of a heap data structure rather than a linear-time search to find the maximum. By: J.Anusdika 1414
  • 15.
  • 16.
    Merge Sort • Mergesort is a sorting technique based on divide and conquer technique. With worst-case time complexity being Ο(n log n), it is one of the most respected algorithms. • Merge sort first divides the array into equal halves and then combines them in a sorted manner. By: J.Anusdika 1616
  • 17.
    Linear Search • Alinear search is the basic and simple search algorithm. • A linear search searches an element or value from an array till the desired element or value is not found and it searches in a sequence order. • It compares the element with all the other elements given in the list and if the element is matched it returns the value index else it return -1. • Linear Search is applied on the unsorted or unordered list when there are fewer elements in a list. By: J.Anusdika 1717
  • 18.
    Example; Algorithms Linear Search (Array A, Value x) Step 1: Set i to 1 Step 2: if i > n then go to step 7 Step 3: if A[i] = x then go to step 6 Step 4: Set i to i + 1 Step 5: Go to Step 2 Step 6: Print Element x Found at index i and go to step 8 Step 7: Print element not found Step 8: Exit By: J.Anusdika 1818
  • 19.
    Binary Search • BinarySearch is applied on the sorted array or list. • In binary search, we first compare the value with the elements in the middle position of the array. • If the value is matched, then we return the value. • If the value is less than the middle element, then it must lie in the lower half of the array and if it's greater than the element then it must lie in the upper half of the array. By: J.Anusdika 1919
  • 20.
    Example With Implementation •To search an element 9 from the sorted array or list. • Code • function findIndex(values, target) { return binarySearch(values, target, 0, values.length - 1); }; function binarySearch(values, target, start, end) { if (start > end) { return -1; } var middle = Math.floor((start + end) / 2) , var value = values[middle]; if (value > target) { return binarySearch(values, target, start, middle-1); } if (value < target) { return binarySearch(values, target, middle+1, end); } return middle; //found! } findIndex([2, 4, 7, 9, 13, 15], 9); • By: J.Anusdika 2020
  • 21.
    Tree Search • ATree Search Only Works If The Data Fits Into A Tree Structure. • The Database Starts At A Root That Goes To A Few Items, Each Of Which Goes To A Few More Items And So On Until You Have A Tree. Binary search tree. Lookup operation • Search algorithm traverses the tree "in-depth", choosing appropriate way to go, following binary search tree property and compares value of each visited node with the one, we are looking for. Algorithm stops in two cases. qA node with necessary value is found qAlgorithm has no way to go By: J.Anusdika 2121
  • 22.
    D3.7: Draw conclusionsabout which one or more of the above methods suitable for real world scenario By: J.Anusdika 2222
  • 23.
    Conclusion • I canused merge sort and bubble sort for this scenario. • Selection sort said to be better than bubble sort. So, we used bubble sort. • Selection sort can used qFind the smallest element, and put it to the first position. qFind the next smallest element, and put it to the second position. qRepeat until all elements are in the right positions. • Bubble sort can Scan the array, swapping adjacent pair of elements if they are not in relative order. This bubbles up the largest element to the end. • By: J.Anusdika 2323
  • 24.

Editor's Notes

  • #10 You can imagine that on every step big bubbles float to the surface and stay there. At the step, when no bubble moves, sorting stops. Let us see an example of sorting an array to make the idea of bubble sort clearer.
  • #12 The thing is that we know that the integers are well distributed, thus we expect that there won’t be many buckets with more than one number inside.