Sorting and Searching are fundamental operations frequently used by Computers. Whenever we log in to the system, the user enters the credentials. The system searches to the authorization database and validates to allow the user to enter the system. Searching becomes efficient when the data is in sorted form. A well-sorted Pharmaceutical Shop is an example of a sorted dataset. When a customer gives the prescription sheet, the pharmacist searches in the shop for the required medicine easily as the medicines are in sorted order. Sorting has been studied extensively by researchers for a long time in the domain of Algorithms and Data Structures. In this course, we teach two important searching algorithms, Linear Search and Binary Search. Binary Search leverages the fact that the data are in sorted order. While Linear Search scans the data linearly from one end to the other in O(n) time, Binary Search uses an interesting technique and accomplishes the task in Olog2n) time. We teach the simple and straightforward sorting algorithms, Bubble Sort, Quick Sort, Insertion Sort, and Selection Sort. For each of the algorithms we teach in the following steps:
1. Concepts and Principles
2. Illustration with a dataset
3. Algorithm
4. Python Program
5. Analysis of Algorithms on the Computational Complexity
We then teach interesting Sorting algorithms Radix Sort and Shell's Diminishing Increment Sort. At the end of the course, the student will be able to appreciate the searching and sorting algorithms and gain hands-on experience on Python Programs for Sorting and Searching.