C++ 23 header-only library. Sorting algorithms, containers, smart pointers.
Catch2 unit test library - https://github.com/catchorg/Catch2
-
bubble sort
-
odd even sort (variation of bubble sort)
-
cocktail shaker sort (bidirectional bubble sort)
-
selection sort
-
insertion sort
-
quick sort
-
merge sort
-
heap sort
-
unbalanced tree sort
-
balanced tree sort
- naive
-
Palindrome
-
Roman numeral to int conversion
-
singly linked list
-
binary search tree
-
enum array
-
trie (prefix tree). Usage: word auto-completion, quick validation if a word is misspelled.
- single_ptr
-
string remove spaces/pattern
-
string join
**********[Benchmark: random array]**********
std::sort : time (ms): 11, array size: 100000
std::stable_sort : time (ms): 7, array size: 100000
bubble_sort : time (ms): 12374, array size: 100000
odd_even_sort : time (ms): 8069, array size: 100000
cocktail_shaker_sort : time (ms): 7718, array size: 100000
cocktail_shaker_sort_2 : time (ms): 6856, array size: 100000
selection_sort : time (ms): 929, array size: 100000
selection_sort_2 : time (ms): 937, array size: 100000
selection_sort_3 : time (ms): 8630, array size: 100000
insertion_sort : time (ms): 927, array size: 100000
insertion_sort_2 : time (ms): 2840, array size: 100000
quick_sort : time (ms): 6, array size: 100000
quick_sort_2 : [SKIPPED]
quick_sort_3 : time (ms): 5, array size: 100000
quick_sort_4 : time (ms): 7, array size: 100000
unbalanced_tree_sort : time (ms): 26, array size: 100000
balanced_tree_sort : time (ms): 28, array size: 100000
merge_sort : time (ms): 7, array size: 100000
heap_sort : time (ms): 4, array size: 100000
**********[Benchmark: sorted array]**********
std::sort : time (ms): 0, array size: 100000
std::stable_sort : time (ms): 0, array size: 100000
bubble_sort : time (ms): 0, array size: 100000
odd_even_sort : time (ms): 0, array size: 100000
cocktail_shaker_sort : time (ms): 0, array size: 100000
cocktail_shaker_sort_2 : time (ms): 0, array size: 100000
selection_sort : time (ms): 945, array size: 100000
selection_sort_2 : time (ms): 929, array size: 100000
selection_sort_3 : time (ms): 8686, array size: 100000
insertion_sort : time (ms): 0, array size: 100000
insertion_sort_2 : time (ms): 0, array size: 100000
quick_sort : time (ms): 1, array size: 100000
quick_sort_2 : [SKIPPED]
quick_sort_3 : [SKIPPED]
quick_sort_4 : [SKIPPED]
unbalanced_tree_sort : [SKIPPED]
balanced_tree_sort : time (ms): 16, array size: 100000
merge_sort : time (ms): 1, array size: 100000
heap_sort : time (ms): 3, array size: 100000
**********[Benchmark: empty array]**********
std::sort : time (ms): 0, array size: 0
std::stable_sort : time (ms): 0, array size: 0
bubble_sort : time (ms): 0, array size: 0
odd_even_sort : time (ms): 0, array size: 0
cocktail_shaker_sort : time (ms): 0, array size: 0
cocktail_shaker_sort_2 : time (ms): 0, array size: 0
selection_sort : time (ms): 0, array size: 0
selection_sort_2 : time (ms): 0, array size: 0
selection_sort_3 : time (ms): 0, array size: 0
insertion_sort : time (ms): 0, array size: 0
insertion_sort_2 : time (ms): 0, array size: 0
quick_sort : time (ms): 0, array size: 0
quick_sort_2 : time (ms): 0, array size: 0
quick_sort_3 : time (ms): 0, array size: 0
quick_sort_4 : time (ms): 0, array size: 0
unbalanced_tree_sort : time (ms): 0, array size: 0
balanced_tree_sort : time (ms): 0, array size: 0
merge_sort : time (ms): 0, array size: 0
heap_sort : time (ms): 0, array size: 0
**********[Benchmark: one element array]**********
std::sort : time (ms): 0, array size: 1
std::stable_sort : time (ms): 0, array size: 1
bubble_sort : time (ms): 0, array size: 1
odd_even_sort : time (ms): 0, array size: 1
cocktail_shaker_sort : [SKIPPED]
cocktail_shaker_sort_2 : time (ms): 0, array size: 1
selection_sort : time (ms): 0, array size: 1
selection_sort_2 : time (ms): 0, array size: 1
selection_sort_3 : time (ms): 0, array size: 1
insertion_sort : time (ms): 0, array size: 1
insertion_sort_2 : time (ms): 0, array size: 1
quick_sort : time (ms): 0, array size: 1
quick_sort_2 : time (ms): 0, array size: 1
quick_sort_3 : time (ms): 0, array size: 1
quick_sort_4 : time (ms): 0, array size: 1
unbalanced_tree_sort : time (ms): 0, array size: 1
balanced_tree_sort : time (ms): 0, array size: 1
merge_sort : time (ms): 0, array size: 1
heap_sort : time (ms): 0, array size: 1
===============================================================================
All tests passed (164 assertions in 15 test cases)