Add quicksort

This commit is contained in:
Samuel Oberhofer 2022-05-26 10:01:23 +02:00
parent 39411739f7
commit 647e14cb3c
2 changed files with 28 additions and 0 deletions

View File

@ -34,3 +34,30 @@ void insertionSort(Ware *waren[10], int sortby) {
} }
} }
} }
void quicksort(Ware *waren[10], int l, int u) {
int i = l, j = u;
Ware *a;
int pivot = waren[(l + u) / 2]->getSeriennummer();
while (i <= j) {
while (waren[i]->getSeriennummer() < pivot) {
i++;
}
while (waren[j]->getSeriennummer() > pivot) {
j--;
}
if (i <= j) {
a = waren[i];
waren[i] = waren[j];
waren[j] = a;
i++;
j--;
}
};
if (l < j) {
quicksort(waren, l, j);
}
if (i < u) {
quicksort(waren, i, u);
}
}

View File

@ -14,6 +14,7 @@ void Sortiment::addWare(Ware *ware) {
void Sortiment::sort(int modus) { void Sortiment::sort(int modus) {
switch (modus) { switch (modus) {
case 1: case 1:
quicksort(this->waren, 0, 9);
break; break;
case 2: case 2:
bubbleSort(this->waren); bubbleSort(this->waren);