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