 ## Sorting Algorithms

In computer science, 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 that require input data to be in sorted lists. 

> See: [Sorting Algorithms](https://en.wikipedia.org/wiki/Sorting_algorithm)

For example: A list of characters is sorted in increasing order of their ASCII values. That is, the character with lesser ASCII value will be placed first than the character with higher ASCII value.

## Sorting

- [Bubble Sort](sort/Bubble_Sort.py)
- [Selection Sort](sort/Selection_Sort.py)
- [Insertion Sort](sort/insertion.py)
- [Quick Sort](sort/QuickSort.py)
- [Heap Sort](sort/Heap_sort.py)
- [Merge Sort Sequantial](sort/Sequential_MergeSort.py)
- [Merge Sort Parallel](sort/Parallel_MergeSort.py)
- [Cocktail sort](sort/cocktail_sort.py)
- [Intro-sort](sort/IntroSort.py)
- [Bead Sort](sort/Bead_Sort.py)
- [Matrix Sort](sort/Matrix_Sort.py)
- [Pancake Sort](sort/pancakesorting.py)
- [Radix Sort](sort/Radix_Sort.py)
- [Shell Sort](sort/Shell_Sort.py)
- [Topological Sort](sort/topological_sort.py)
- [Sleep Sort](sort/Sleep_sort.py)
- [Counting Sort](sort/Counting_Sort.py)
- [List Sort](sort/ListTuplesort.py)
- [Tim Sort](sort/TimSort.py)
