Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Update README.md
  • Loading branch information
KavinduDr authored Jan 29, 2025
commit c6add6082951df7395b36964ff7409119c2a0d0a
24 changes: 24 additions & 0 deletions Data Structures and Algorithms/Sorting Algorithms/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,27 @@ print("Original array:", arr)
writes = cycle_sort(arr)
print("Sorted array:", arr)
print("Number of writes performed:", writes)
```
# Pigeonhole Sort Algorithm

## Overview
Pigeonhole Sort is a sorting algorithm that works well for sorting lists where the range of values (i.e., the difference between the maximum and minimum values) is not significantly larger than the number of elements in the list. It is a non-comparison-based sorting algorithm.

The algorithm works by placing each element into its corresponding "pigeonhole" (a slot or bucket) and then iterating through the pigeonholes in order to reconstruct the sorted list.

## Complexity
- **Time Complexity**:
- The time complexity of Pigeonhole Sort is O(n + range), where n is the number of elements in the list and range is the difference between the maximum and minimum values.

- This makes it efficient for lists with a small range of values.
- **Space Complexity**: The space complexity is O(range), as it requires additional space for the holes list.
- **Limitations**: Pigeonhole Sort is not suitable for lists with a large range of values, as it would require a lot of memory for the holes list.

## Usage Example
```python
from PigeonHole_Sort import pigeonhole_sort

arr = [4, 5, 3, 2, 1]
print("Original array:", arr)
writes = pigeonhole_sort(arr)
print("Sorted array:", arr)