From 895a846025f3447975e72a61facd669e82e4e488 Mon Sep 17 00:00:00 2001 From: Samuel Oberhofer Date: Mon, 23 May 2022 21:52:00 +0200 Subject: [PATCH] Fix Bubblesort and add InsertionSort --- Uebung 1/Algorithms.h | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/Uebung 1/Algorithms.h b/Uebung 1/Algorithms.h index d7b610e..e38fbdc 100644 --- a/Uebung 1/Algorithms.h +++ b/Uebung 1/Algorithms.h @@ -4,9 +4,33 @@ #include void bubbleSort(Ware *waren[10]) { - for (int i = 0; i < 10; i++) { - if (waren[i]->getGewicht() > waren[i + 1]->getGewicht()) { - std::swap(waren[i], waren[i + 1]); + for (int n = 10; n > 1; n--) { + for (int i = 0; i < n - 1; i++) { + if (waren[i]->getGewicht() > waren[i + 1]->getGewicht()) { + std::swap(waren[i], waren[i + 1]); + } } } -} \ No newline at end of file +} + +void insertionSort(Ware *waren[10], int sortby) { + if (sortby == 0) { + for (int i = 1; i < 9; i++) { + int j = i; + while (j > 0 && + waren[j - 1]->getVerkaufspreis() > waren[j]->getVerkaufspreis()) { + std::swap(waren[j - 1], waren[j]); + j--; + } + } + } else if (sortby == 1) { + for (int i = 1; i < 9; i++) { + int j = i; + while (j > 0 && + waren[j - 1]->getEinkaufspreis() > waren[j]->getEinkaufspreis()) { + std::swap(waren[j - 1], waren[j]); + j--; + } + } + } +}