DS Unit 5 Notes

Complete Data Structure Unit 5 notes for RGPV exam preparation. This unit covers sorting techniques, searching methods, hashing, indexing and practical applications of data structures in operating systems and database management systems.

šŸ“˜ Detailed Notes

Complete Unit 5 notes in simple language with exam-oriented explanation of sorting, searching, hashing and indexing.

Read Document

⭐ Important Questions

Most expected and repeated questions for Data Structure Unit 5, useful for quick revision before semester exams.

View Questions

šŸ“„ PYQ Analysis

Previous year question analysis with topic-wise weightage and important areas to focus on for RGPV exams.

Open Analysis

Unit 5 Topics

Introduction to Data Structure Unit 5

Unit 5 of Data Structure is one of the most important units for university examinations and practical programming. In earlier units, students learn how data can be stored using arrays, linked lists, stacks, queues, trees and graphs. In this unit, the main focus is on how stored data can be arranged, searched and accessed efficiently. A program is not useful only because it stores data. It becomes powerful when it can find the required data quickly and process it in minimum time.

Sorting means arranging data in a particular order, usually ascending or descending. Searching means finding a particular element from a collection of elements. Hashing is a technique used for very fast searching by converting a key into an address or index. Indexing is mainly used in databases and file systems to improve searching speed. These topics are directly connected with real-life software such as search engines, banking systems, online shopping websites, operating systems, database systems and student result portals.

For RGPV exams, Unit 5 is important because many direct theory questions, algorithms and comparison-based questions are asked from this unit. Students should focus on definitions, working steps, time complexity, advantages, disadvantages and examples of each technique. Understanding the logic is more important than memorizing code. Once the basic idea is clear, writing algorithms in exams becomes easy.

Sorting Techniques

What is Sorting?

Sorting is the process of arranging a list of elements in a specific order. The order may be ascending, descending or alphabetical. For example, if the numbers 40, 10, 30, 20 are arranged as 10, 20, 30, 40, then it is ascending sorting. Sorting is required because searching, reporting, ranking and comparison become easier when data is arranged properly.

Sorting algorithms are classified on the basis of memory usage, comparison method, stability and efficiency. Some sorting methods are simple but slow for large data, while some methods are complex but faster. In exams, students should remember that no single sorting technique is best for every situation. The best technique depends on data size, memory availability and whether data is already partially sorted or completely unsorted.

Bubble Sort

Bubble sort is the simplest sorting technique. It repeatedly compares adjacent elements and swaps them if they are in the wrong order. After every pass, the largest element moves to its correct position at the end of the list. Because larger elements slowly move like bubbles towards the end, it is called bubble sort.

  1. Start from the first element.
  2. Compare the current element with the next element.
  3. If the current element is greater, swap both elements.
  4. Continue this process until the end of the array.
  5. Repeat passes until the array becomes sorted.

Bubble sort is easy to understand and easy to implement, but it is not suitable for large data because its average and worst-case time complexity is O(n²). It is usually asked in exams as a basic sorting algorithm.

Selection Sort

Selection sort works by selecting the smallest element from the unsorted part of the array and placing it at the beginning. In the first pass, it finds the minimum element from the whole array and swaps it with the first element. In the second pass, it finds the minimum element from the remaining array and swaps it with the second element. This continues until the whole list becomes sorted.

The main advantage of selection sort is that it performs fewer swaps than bubble sort. However, it still requires O(n²) comparisons, so it is not efficient for large data. It is useful when memory is limited because it performs sorting in the same array.

Insertion Sort

Insertion sort is similar to the way we arrange playing cards in our hand. It takes one element at a time and inserts it into its correct position in the already sorted part of the array. Initially, the first element is considered sorted. Then each next element is compared with previous elements and shifted until the correct position is found.

Insertion sort is very efficient for small data sets and nearly sorted data. Its best-case time complexity is O(n) when data is already sorted. Its worst-case time complexity is O(n²). Many exam questions ask students to trace insertion sort on a given list.

Shell Sort

Shell sort is an improved version of insertion sort. Instead of comparing only adjacent elements, it compares elements at a fixed gap. The gap is gradually reduced until it becomes 1. When gap becomes 1, shell sort behaves like insertion sort, but the array is already partially sorted, so final sorting becomes faster.

Shell sort is better than simple insertion sort for medium-sized data. Its exact time complexity depends on the gap sequence used. In exams, students usually need to explain the idea, working and advantage of reducing gaps.

Advanced Sorting Techniques

Merge Sort

Merge sort is a divide and conquer sorting technique. Divide and conquer means dividing a large problem into smaller subproblems, solving those subproblems and combining their results. Merge sort divides the array into two halves repeatedly until each part contains only one element. Then it merges the smaller sorted parts to form a complete sorted array.

The main advantage of merge sort is its stable performance. Its time complexity is O(n log n) in best, average and worst cases. This makes it better than bubble, selection and insertion sort for large data. The disadvantage is that it requires extra memory for merging. Merge sort is important for exam questions because it clearly demonstrates divide and conquer strategy.

Quick Sort

Quick sort is also based on divide and conquer. It selects one element as a pivot and partitions the array so that elements smaller than the pivot are placed on the left side and elements greater than the pivot are placed on the right side. After partitioning, the same process is applied recursively to the left and right subarrays.

Quick sort is very fast in practice and is commonly used in many systems. Its average time complexity is O(n log n), but its worst-case time complexity becomes O(n²) when pivot selection is poor. To avoid poor performance, better pivot selection methods such as random pivot or median pivot can be used. In RGPV exams, quick sort partitioning is a very important topic.

Heap Sort

Heap sort uses a special tree-based structure called heap. A heap is a complete binary tree that follows heap property. In a max heap, every parent node is greater than or equal to its children. In a min heap, every parent node is smaller than or equal to its children. Heap sort first builds a max heap and then repeatedly removes the maximum element and places it at the end of the array.

Heap sort has O(n log n) time complexity and does not require extra memory like merge sort. It is useful when consistent performance is required. However, heap sort is not stable and its implementation is slightly more complex than simple sorting techniques.

Radix Sort

Radix sort is a non-comparison-based sorting technique. It sorts numbers digit by digit, starting either from the least significant digit or the most significant digit. It usually uses counting sort as a subroutine. Radix sort is useful when keys are integers and the number of digits is limited.

The important point about radix sort is that it does not compare elements directly like bubble sort or quick sort. Instead, it groups elements according to digits. Its time complexity can be very efficient for fixed-length numeric data. In exams, students should write a proper example because radix sort becomes very easy to understand through step-by-step digit sorting.

Comparison of Sorting Techniques

Sorting MethodBest CaseAverage CaseWorst CaseMain Feature
Bubble SortO(n)O(n²)O(n²)Simple but slow
Selection SortO(n²)O(n²)O(n²)Minimum swaps
Insertion SortO(n)O(n²)O(n²)Good for nearly sorted data
Merge SortO(n log n)O(n log n)O(n log n)Stable and reliable
Quick SortO(n log n)O(n log n)O(n²)Fast in practice
Heap SortO(n log n)O(n log n)O(n log n)Uses heap structure
Radix SortO(nk)O(nk)O(nk)Digit-based sorting

For examination, comparison tables are very useful because they help in writing answers quickly. Students should remember time complexity and one special feature of each sorting method. Bubble, selection and insertion sort are simple but less efficient. Merge, quick and heap sort are advanced and suitable for large data. Radix sort is different because it does not use direct comparison.

Searching Techniques

Sequential Search

Sequential search, also known as linear search, checks each element one by one until the required element is found or the list ends. It works on both sorted and unsorted lists. For example, to find 30 in the list 10, 50, 30, 20, the algorithm checks 10, then 50, then 30 and stops when the element is found.

The advantage of sequential search is simplicity. It does not require sorted data. The disadvantage is that it is slow for large lists because in the worst case it may check every element. Its worst-case time complexity is O(n).

Binary Search

Binary search is an efficient searching technique, but it works only on sorted data. It compares the target element with the middle element of the array. If the target is equal to the middle element, the search is successful. If the target is smaller, searching continues in the left half. If the target is greater, searching continues in the right half.

Binary search reduces the search area by half in every step. Therefore, its time complexity is O(log n), which is much faster than sequential search. The limitation is that data must be sorted before applying binary search. In exams, binary search is often asked with a numerical example and algorithm.

PointSequential SearchBinary Search
Data RequirementSorted or unsortedOnly sorted
MethodChecks one by oneDivides list into halves
Time ComplexityO(n)O(log n)
ImplementationVery simpleSlightly complex
Best UseSmall or unsorted dataLarge sorted data

Hashing and Indexing

Hashing

Hashing is a technique used to store and retrieve data very quickly. In hashing, a key is passed through a hash function, and the hash function generates an address or index where the data is stored. For example, in a student database, roll number can be used as a key. The hash function converts the roll number into an index of a hash table.

The main goal of hashing is to achieve constant time searching, insertion and deletion. Ideally, hashing operations take O(1) time. However, sometimes two different keys may generate the same index. This condition is called collision. Collision handling is an important part of hashing.

Collision Resolution Techniques

Hashing is widely used in dictionaries, compilers, database indexing, password storage, caches and symbol tables. For exam answers, students should explain hash function, hash table, collision and collision resolution techniques.

Indexing

Indexing is a method used to improve the speed of data retrieval. It works like the index page of a book. Instead of reading the whole book to find a topic, we use the index to directly reach the required page. Similarly, in databases and files, indexing stores key values with addresses of records. When a record is needed, the system checks the index and directly accesses the location.

Indexing reduces searching time but requires extra storage space. It also adds overhead during insertion, deletion and update because the index must be maintained. Still, indexing is very important in database management systems because it makes searching faster for large data tables.

Applications in OS and DBMS

Applications of Data Structures in Operating System

Operating systems use data structures internally to manage processes, memory, files and devices. Queues are used in CPU scheduling, where processes wait for processor time. Priority queues are used when some processes have higher priority than others. Stacks are used for function calls, interrupt handling and memory management. Linked lists are used to manage free memory blocks and file allocation tables.

Trees are used in directory structures, where folders and files are organized hierarchically. Hash tables can be used for fast lookup of system resources. Data structures make operating systems efficient, organized and responsive.

Applications of Data Structures in DBMS

Database management systems use data structures to store, search and organize large amounts of data. B trees and B+ trees are commonly used for database indexing because they support fast search, insertion and deletion. Hashing is used for direct record access and hash-based indexing. Linked lists may be used in internal memory management, while queues help in transaction scheduling.

Sorting is used in SQL operations such as ORDER BY, GROUP BY and joining records. Searching is used whenever a query requests specific records. Without efficient data structures, databases would become very slow when handling millions of records.

Important Questions for RGPV Exam

  1. Define sorting. Explain different types of sorting techniques.
  2. Explain bubble sort with algorithm and example.
  3. Write short note on selection sort and insertion sort.
  4. Explain merge sort using divide and conquer method.
  5. Explain quick sort and partitioning technique.
  6. Write algorithm for heap sort and explain its working.
  7. Compare bubble sort, selection sort and insertion sort.
  8. Compare quick sort, merge sort and heap sort.
  9. Explain radix sort with a suitable example.
  10. Define searching. Explain sequential search and binary search.
  11. Differentiate between linear search and binary search.
  12. What is hashing? Explain hash table and hash function.
  13. Explain collision and collision resolution techniques.
  14. Write short note on indexing.
  15. Explain applications of data structures in operating systems.
  16. Explain applications of data structures in DBMS.

PYQ Analysis and Exam Tips

TopicExpected WeightagePreparation Tip
Sorting AlgorithmsVery HighPrepare algorithms, examples and complexity tables.
SearchingHighPractice linear and binary search with step-by-step examples.
HashingHighFocus on collision handling methods.
IndexingMediumConnect indexing with DBMS and file searching.
Applications in OS and DBMSMediumPrepare short notes with real examples.

To score well in Unit 5, students should practice dry runs of sorting algorithms. A dry run means showing how the array changes after each pass. In university exams, marks are often given for clear steps, correct algorithm and final sorted output. For theory questions, write definition first, then working, example, advantages, disadvantages and complexity.

Frequently Asked Questions

Q1. Which sorting algorithm is most important for RGPV exams?

Quick sort, merge sort, bubble sort and heap sort are very important. Students should prepare their algorithms, examples and time complexities.

Q2. What is the difference between searching and sorting?

Sorting arranges data in order, while searching finds a particular element from data. Sorting often improves searching efficiency.

Q3. Why is binary search faster than linear search?

Binary search divides the list into two halves in every step, so it checks fewer elements. Linear search checks elements one by one.

Q4. What is collision in hashing?

Collision occurs when two different keys generate the same hash table index. It is handled using techniques like chaining and probing.

Q5. Why is indexing used in DBMS?

Indexing is used to retrieve records faster from large databases. It works like the index page of a book.

Q6. Is Unit 5 easy for scoring marks?

Yes, Unit 5 is scoring if students practice algorithms, dry runs, complexity tables and short notes properly.