Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void printArray(int* array, int n)
- {
- for (int i = 0; i < n; ++i)
- std::cout << array[i] << std::endl;
- }
- int partition(int* array, int l, int r)
- {
- int i, j, tmp, pivot;
- pivot = array[(l + r) / 2];
- tmp = 0;
- while (true) {
- while (array[l] < pivot)
- l += 1;
- while (array[r] > pivot)
- r -= 1;
- if (l >= r)
- return r;
- tmp = array[l];
- array[l] = array[r];
- array[r] = tmp;
- l += 1;
- r -= 1;
- }
- }
- void quickSort(int* array, int l, int r)
- {
- if (l < r) {
- int q = partition(array, l, r);
- quickSort(array, l, q);
- quickSort(array, q + 1, r);
- }
- }
- int main()
- {
- int array[] = { 5, 2, 2, 3 };
- int n = 4;
- quickSort(array, 0, n - 1);
- std::cout << "After Quick Sort :" << std::endl;
- printArray(array, n);
- return (0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement