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)