3ll0s

Untitled

May 23rd, 2013
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. template <typename T>
  2. void qsort (T *result, T *list, int n)
  3. {
  4. if (n == 0) return;
  5. T *smallerList, *largerList;
  6. smallerList = new T[n];
  7. largerList = new T[n];
  8. T pivot = list[0];
  9. int numSmaller=0, numLarger=0;
  10. for (int i = 1; i < n; i++)
  11. if (list[i] < pivot)
  12. smallerList[numSmaller++] = list[i];
  13. else
  14. largerList[numLarger++] = list[i];
  15.  
  16. qsort(smallerList,smallerList,numSmaller);
  17. qsort(largerList,largerList,numLarger);
  18.  
  19. int pos = 0;
  20. for ( int i = 0; i < numSmaller; i++)
  21. result[pos++] = smallerList[i];
  22.  
  23. result[pos++] = pivot;
  24.  
  25. for ( int i = 0; i < numLarger; i++)
  26. result[pos++] = largerList[i];
  27.  
  28. delete [] smallerList;
  29. delete [] largerList;
  30. };
Advertisement
Add Comment
Please, Sign In to add comment