Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int partition1(vector<vector<int>>& a, int ii, int start, int end, Efficiency* eff)
- {
- int pivot = a[ii][end];
- int i = start;
- int j = start;
- while (i < end) {
- eff->comparisons++;
- if (a[ii][i] < pivot) {
- i++;
- }
- else {
- if (i != j) {
- eff->swaps++;
- swap(&a[ii][i], &a[ii][j]);
- }
- i++;
- j++;
- }
- }
- if (i != j) {
- eff->swaps++;
- swap(&a[ii][i], &a[ii][j]);
- }
- i++;
- j++;
- return j - 1;
- }
- void quick1(vector<vector<int>>& a, int ii, int start, int end, Efficiency* eff)
- {
- if (start < end)
- {
- int p = partition1(a, ii, start, end, eff);
- quick1(a, ii, start, p - 1, eff);
- quick1(a, ii, p + 1, end, eff);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment