> For the complete documentation index, see [llms.txt](https://emory.gitbook.io/dsa-java/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://emory.gitbook.io/dsa-java/sorting-algorithms.md).

# 3. Sorting Algorithms

## Contents

1. [Abstraction](/dsa-java/sorting-algorithms/abstraction.md)
2. [Comparison-based Sort](/dsa-java/sorting-algorithms/3.2.-comparison-based-sort.md)
3. [Divide & Conquer Sort](/dsa-java/sorting-algorithms/divide-and-conquer-sort.md)
4. [Distribution-based Sort](/dsa-java/sorting-algorithms/distribution-based-sort.md)
5. [Quiz](/dsa-java/sorting-algorithms/exercises.md)
6. [Homework](/dsa-java/sorting-algorithms/homework.md)

## Resources

* Main: [src/main/java/edu/emory/cs/sort](https://github.com/emory-courses/dsa-java/tree/master/src/main/java/edu/emory/cs/sort)
* Test: [src/test/java/edu/emory/cs/sort](https://github.com/emory-courses/dsa-java/tree/master/src/test/java/edu/emory/cs/sort)

## References

* Comparison-based Algorithms
  * [Selection Sort](https://en.wikipedia.org/wiki/Selection_sort) $$\rightarrow$$ [Heap Sort](https://en.wikipedia.org/wiki/Heapsort)
  * [Insertion Sort](https://en.wikipedia.org/wiki/Insertion_sort) $$\rightarrow$$ [Shell Sort](https://en.wikipedia.org/wiki/Shellsort)
* Divide and Conquer Algorithms
  * [Merge Sort](https://en.wikipedia.org/wiki/Merge_sort) $$\rightarrow$$ [Tim Sort](https://en.wikipedia.org/wiki/Timsort)
  * [Quick Sort](https://en.wikipedia.org/wiki/Quicksort) $$\rightarrow$$ [Intro Sort](https://en.wikipedia.org/wiki/Introsort)
* Distribution-based Algorithms
  * [Bucket Sort](https://en.wikipedia.org/wiki/Bucket_sort)
  * [Radix Sort](https://en.wikipedia.org/wiki/Radix_sort)
