From 6a3935cac25ab952bbed881bccb582529888a47a Mon Sep 17 00:00:00 2001 From: ZennDev1337 Date: Tue, 5 Mar 2024 09:58:45 +0100 Subject: [PATCH] update 05.03.24 --- src/algo.cpp | 11 +++++++++++ src/algo.h | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/io.cpp | 10 +--------- src/io.h | 53 -------------------------------------------------- src/main.cpp | 1 + 5 files changed, 68 insertions(+), 62 deletions(-) create mode 100644 src/algo.cpp create mode 100644 src/algo.h diff --git a/src/algo.cpp b/src/algo.cpp new file mode 100644 index 0000000..f13f6b4 --- /dev/null +++ b/src/algo.cpp @@ -0,0 +1,11 @@ +#include "algo.h" + +void bubble_sort_print_demo() +{ + int demo[]{11, 14, 3, 18, 8, 17, 43, 6, 5, 4}; + double demo2[]{11.2, 14.3, 3.2, 18.6, 8.7, 17.9, 43.3, 12.3}; + std::string demo3[]{"hallo", "velo", "kekw", "imagin"}; + bubble_sort_print(sizeof(demo) / sizeof(demo[0]), demo); + bubble_sort_print(sizeof(demo2) / sizeof(demo2[0]), demo2); + bubble_sort_print(sizeof(demo3) / sizeof(demo3[0]), demo3); +} \ No newline at end of file diff --git a/src/algo.h b/src/algo.h new file mode 100644 index 0000000..52bc41f --- /dev/null +++ b/src/algo.h @@ -0,0 +1,55 @@ +#pragma once +#include +#include +#include + +void bubble_sort_print_demo(); + +template +struct TypeName +{ + static const char *Get() + { + return typeid(T).name(); + } +}; +template <> +struct TypeName +{ + static const char *Get() + { + return "s"; + } +}; + +template +void bubble_sort(int size, T *a) +{ + for (int i = 0; i < size; i++) + { + for (int j = 0; j < size - 1 - i; j++) + { + if (a[j] > a[j + 1]) + { + T temp{a[j]}; + a[j] = a[j + 1]; + a[j + 1] = temp; + } + } + } +}; + +template +void bubble_sort_print(int size, T *a) +{ + std::cout << std::left; // left justify output + std::cout << "unsorted " << TypeName::Get() << std::setw(10) << " Array: "; + for (int i = 0; i < size; i++) + std::cout << a[i] << ", "; + std::cout << "\n"; + bubble_sort(size, a); + std::cout << "sorted " << TypeName::Get() << std::setw(12) << " Array: "; + for (int i = 0; i < size; i++) + std::cout << a[i] << ", "; + std::cout << "\n\n"; +}; \ No newline at end of file diff --git a/src/io.cpp b/src/io.cpp index e912c59..90f2791 100644 --- a/src/io.cpp +++ b/src/io.cpp @@ -1,6 +1,7 @@ #include "io.h" #include #include + void add_two_numbers() { int a{read_number()}; @@ -39,12 +40,3 @@ void print_type_size_bytes() std::cout << std::setw(16) << "double:" << sizeof(double) << " bytes\n"; std::cout << std::setw(16) << "long double:" << sizeof(long double) << " bytes\n\n"; } -void bubble_sort_print_demo() -{ - int demo[]{11, 14, 3, 18, 8, 17, 43, 6, 5, 4}; - double demo2[]{11.2, 14.3, 3.2, 18.6, 8.7, 17.9, 43.3, 12.3}; - std::string demo3[]{"hallo", "velo", "kekw", "imagin"}; - bubble_sort_print(sizeof(demo) / sizeof(demo[0]), demo); - bubble_sort_print(sizeof(demo2) / sizeof(demo2[0]), demo2); - bubble_sort_print(sizeof(demo3) / sizeof(demo3[0]), demo3); -} \ No newline at end of file diff --git a/src/io.h b/src/io.h index 2a07d3a..ecdefe3 100644 --- a/src/io.h +++ b/src/io.h @@ -1,60 +1,7 @@ #pragma once -#include -#include -#include void add_two_numbers(); int read_number(); void write_answer(int x); void convert_char_to_ascii(); void print_type_size_bytes(); -void bubble_sort_print_demo(); - -template -struct TypeName -{ - static const char *Get() - { - return typeid(T).name(); - } -}; -template <> -struct TypeName -{ - static const char *Get() - { - return "s"; - } -}; - -template -void bubble_sort(int size, T *a) -{ - for (int i = 0; i < size; i++) - { - for (int j = 0; j < size - 1 - i; j++) - { - if (a[j] > a[j + 1]) - { - T temp{a[j]}; - a[j] = a[j + 1]; - a[j + 1] = temp; - } - } - } -}; - -template -void bubble_sort_print(int size, T *a) -{ - std::cout << std::left; // left justify output - std::cout << "unsorted " << TypeName::Get() << std::setw(10) << " Array: "; - for (int i = 0; i < size; i++) - std::cout << a[i] << ", "; - std::cout << "\n"; - bubble_sort(size, a); - std::cout << "sorted " << TypeName::Get() << std::setw(12) << " Array: "; - for (int i = 0; i < size; i++) - std::cout << a[i] << ", "; - std::cout << "\n\n"; -}; \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index c5e92d2..0a793a6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,5 +1,6 @@ #include // for std::cout #include "io.h" +#include "algo.h" int main() {