Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- template <typename T> void printArray(T arr[], uint16_t size)
- {
- for (uint16_t i{ 0 }; i < size; ++i) { std::cout << arr[i] << " "; }; std::cout << '\n';
- }
- template <typename T> void qsort(T arr[], uint16_t head, uint16_t tail)
- {
- uint16_t intH = head;
- uint16_t intT = tail;
- T mid = arr[(intH + intT) / 2];
- do
- {
- while (arr[intH] < mid) intH++;
- while (arr[intT] > mid) intT--;
- if (intH <= intT)
- {
- T tmp = arr[intH];
- arr[intH] = arr[intT];
- arr[intT] = tmp;
- std::cout << "Mid: " << mid << " Head: " << head << " Tail: " << tail << " intH: " << intH << " intT: " << intT << " " << '\n';
- intH++;
- intT--;
- printArray(arr, 7);
- }
- } while (intH <= intT);
- std::cout << '\n';
- if (intT > head) qsort(arr, head, intT);
- if (tail > intH) qsort(arr, intH, tail);
- }
- int main()
- {
- float arr[7]{ 4,9,7,6,2,3,8 };
- printArray(arr, 7);
- qsort(arr, 0, 6);
- printArray(arr, 7);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement