Add quicksort
This commit is contained in:
parent
39411739f7
commit
647e14cb3c
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue