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) {
|
||||
switch (modus) {
|
||||
case 1:
|
||||
quicksort(this->waren, 0, 9);
|
||||
break;
|
||||
case 2:
|
||||
bubbleSort(this->waren);
|
||||
|
|
|
|||
Loading…
Reference in New Issue