List of algorithms
Choose an algorithm:
Choose an algorithm:
#include "vector.hpp"
#include "bubble_sort.hpp"
#include <iostream>
int main() {
dby::vector<int> vec = { 9, 4, 0, 1, 3, 8, 2, 7, 5, 6 };
// Increasing
std::cout << "INCREASING: ";
dby::BubbleSort::sort<int>(vec);
vec.for_each([](int num){ std::cout << num << ' '; });
// Non-increasing
std::cout << "\nNON-INCREASING: ";
dby::BubbleSort::sort<int>(vec, [](int a, int b){ return a < b; });
vec.for_each([](int num){ std::cout << num << ' '; });
return 0;
}
#include "vector.hpp"
#include "selection_sort.hpp"
#include <iostream>
int main() {
dby::vector<int> vec = { 9, 4, 0, 1, 3, 8, 2, 7, 5, 6 };
// Increasing
std::cout << "INCREASING: ";
dby::SelectionSort::sort<int>(vec);
vec.for_each([](int num){ std::cout << num << ' '; });
// Non-increasing
std::cout << "\nNON-INCREASING: ";
dby::SelectionSort::sort<int>(vec, [](int a, int b){ return a < b; });
vec.for_each([](int num){ std::cout << num << ' '; });
return 0;
}
#include "vector.hpp"
#include "insertion_sort.hpp"
#include <iostream>
int main() {
dby::vector<int> vec = { 9, 4, 0, 1, 3, 8, 2, 7, 5, 6 };
// Increasing
std::cout << "INCREASING: ";
dby::InsertionSort::sort<int>(vec);
vec.for_each([](int num){ std::cout << num << ' '; });
// Non-increasing
std::cout << "\nNON-INCREASING: ";
dby::InsertionSort::sort<int>(vec, [](int a, int b){ return a < b; });
vec.for_each([](int num){ std::cout << num << ' '; });
return 0;
}
#include "vector.hpp"
#include "shell_sort.hpp"
#include <iostream>
int main() {
dby::vector<int> vec = { 9, 4, 0, 1, 3, 8, 2, 7, 5, 6 };
// Increasing
std::cout << "INCREASING: ";
dby::ShellSort::sort<int>(vec);
vec.for_each([](int num){ std::cout << num << ' '; });
// Non-increasing
std::cout << "\nNON-INCREASING: ";
dby::ShellSort::sort<int>(vec, [](int a, int b){ return a < b; });
vec.for_each([](int num){ std::cout << num << ' '; });
return 0;
}
#include "vector.hpp"
#include "comb_sort.hpp"
#include <iostream>
int main() {
dby::vector<int> vec = { 9, 4, 0, 1, 3, 8, 2, 7, 5, 6 };
// Increasing
std::cout << "INCREASING: ";
dby::CombSort::sort<int>(vec);
vec.for_each([](int num){ std::cout << num << ' '; });
// Non-increasing
std::cout << "\nNON-INCREASING: ";
dby::CombSort::sort<int>(vec, [](int a, int b){ return a < b; });
vec.for_each([](int num){ std::cout << num << ' '; });
return 0;
}
#include "vector.hpp"
#include "merge_sort.hpp"
#include <iostream>
int main() {
dby::vector<int> vec = { 9, 4, 0, 1, 3, 8, 2, 7, 5, 6 };
// Increasing
std::cout << "INCREASING: ";
dby::MergeSort::sort<int>(vec);
vec.for_each([](int num){ std::cout << num << ' '; });
// Non-increasing
std::cout << "\nNON-INCREASING: ";
dby::MergeSort::sort<int>(vec, [](int a, int b){ return a < b; });
vec.for_each([](int num){ std::cout << num << ' '; });
return 0;
}
#include "vector.hpp"
#include "quick_sort.hpp"
#include <iostream>
int main() {
srand(time(0));
dby::vector<int> vec1 = { 9, 4, 0, 1, 3, 8, 2, 7, 5, 6 };
dby::vector<int> vec2 = { 9, 4, 0, 1, 3, 8, 2, 7, 5, 6 };
dby::vector<int> vec3 = { 9, 4, 0, 1, 3, 8, 2, 7, 5, 6 };
// Normal quicksort
std::cout << "NORMAL QUICKSORT: ";
dby::QuickSort::sort<int>(vec1);
vec1.for_each([](int num){ std::cout << num << ' '; });
// Randomized quicksort
std::cout << "\nRANDOMIZED QUICKSORT: ";
dby::QuickSort::sort<int>(vec2, dby::quick_sort_type::randomized);
vec2.for_each([](int num){ std::cout << num << ' '; });
// Median of three quicksort
std::cout << "\nMEDIAN OF THREE QUICKSORT: ";
dby::QuickSort::sort<int>(vec3, dby::quick_sort_type::median_of_three, [](int a, int b){ return a < b; });
vec3.for_each([](int num){ std::cout << num << ' '; });
return 0;
}
#include "vector.hpp"
#include "heap_sort.hpp"
#include <iostream>
int main() {
dby::vector<int> vec = { 9, 4, 0, 1, 3, 8, 2, 7, 5, 6 };
// Increasing
std::cout << "INCREASING: ";
dby::HeapSort::sort<int>(vec);
vec.for_each([](int num){ std::cout << num << ' '; });
// Non-increasing
std::cout << "\nNON-INCREASING: ";
dby::HeapSort::sort<int>(vec, [](int a, int b){ return a < b; });
vec.for_each([](int num){ std::cout << num << ' '; });
return 0;
}
#include "vector.hpp"
#include "tim_sort.hpp"
#include <iostream>
int main() {
dby::vector<int> vec = { 9, 4, 0, 1, 3, 8, 2, 7, 5, 6 };
// Increasing
std::cout << "INCREASING: ";
dby::TimSort::sort<int>(vec);
vec.for_each([](int num){ std::cout << num << ' '; });
// Non-increasing
std::cout << "\nNON-INCREASING: ";
dby::TimSort::sort<int>(vec, [](int a, int b){ return a < b; });
vec.for_each([](int num){ std::cout << num << ' '; });
return 0;
}
#include "vector.hpp"
#include "intro_sort.hpp"
#include <iostream>
int main() {
dby::vector<int> vec = { 9, 4, 0, 1, 3, 8, 2, 7, 5, 6 };
// Increasing
std::cout << "INCREASING: ";
dby::IntroSort::sort<int>(vec);
vec.for_each([](int num){ std::cout << num << ' '; });
// Non-increasing
std::cout << "\nNON-INCREASING: ";
dby::IntroSort::sort<int>(vec, [](int a, int b){ return a < b; });
vec.for_each([](int num){ std::cout << num << ' '; });
return 0;
}