Searching and Sorting Algorithms
What you'll learn
- Searching and Sorting Algorithms
- Yes, A basic knowledge in Data Structures and Programming is preferred
Hey there! In this course on searching and sorting algorithms. We will be visualising the workflow of the algorithms and understanding the hang of them. We will implement what we have understood in Cpp Programming. We will compare and contrast each algorithm in terms of time, space, adaptability and stability.
The searching algorithms that we will be studying in this course are
1. Linear Search
2. Binary Search - Both Recursive and Iterative
3. Jump Search.
The sorting algorithms what we will be looking in this course are:
1. Bubble Sort
2. Selection Sort
3. Merge Sort
4. Quick Sort
5. Count Sort
6. Bucket Sort
7. Radix Sort
8. Insertion Sort
You'll be able to understand the typical use cases, workflow, time complexity, implementation of each and every algorithm.
A sorting algorithm is an algorithm that puts elements of a list in a certain order. The most frequently used orders are numerical order and lexicographical order. Efficient sorting is important for optimizing the efficiency of other algorithms (such as search and merge algorithms) that require input data to be in sorted lists. Sorting is also often useful for canonicalizing data and for producing human-readable output. More formally, the output of any sorting algorithm must satisfy two conditions:
The output is in nondecreasing order (each element is no smaller than the previous element according to the desired total order);
The output is a permutation (a reordering, yet retaining all of the original elements) of the input.
For optimum efficiency, the input data in fast memory should be stored in a data structure which allows random access rather than one that allows only sequential access
Who this course is for:
- Beginner Programmers
Languages - C, C++, Python, Verilog, System Verilog
Hardware - Digital Logic Design, Computer Architecture, VLSI Design, Analog Electronics, Signal Processing, Embedded Systems
Software - Data Structures & Algorithms, Operating Systems, Database Management Systems, Computer Networks, Machine Learning, Deep Learning.
Tools - Xilinx Vivado, Matlab, Multisim, Altium, Arduino IDE, TinkerCAD, Tanner EDA, Cadence Virtuoso
Boards - Arduino, 8051, TIVA, Raspberry Pi, NodeMCU
Areas of Interest - Artificial Intelligence, Digital Design, Software Engineering, Algorithms