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--; + } + } + } +}