Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void recursiveQuickSort2(int v[], int left, int right)
- {
- if (right > left)
- {
- int p,q,i,less,grt;
- p = v[left];
- q = v[right];
- if(p > q)
- {
- g_num_comparacoes++;
- swap(&v[left],&v[right]);
- p = v[left];
- q = v[right];
- }
- else if (p == q)
- {
- while (p == q && left < right)
- {
- g_num_comparacoes++;
- left++;
- p = v[left];
- }
- }
- i = left+1;
- less = left+1;
- grt = right-1;
- while(i<=grt)
- {
- if(v[i]<p)
- {
- swap(&v[i++], &v[less++]);
- g_num_comparacoes++;
- }
- else if (q < v[i])
- {
- swap(&v[i], &v[grt--]);
- g_num_comparacoes++;
- }
- else i++;
- }
- swap(&v[left], &v[--less]);
- swap(&v[right], &v[++grt]);
- recursiveQuickSort2(v, left, less-1);
- recursiveQuickSort2(v, less+1, grt-1);
- recursiveQuickSort2(v, grt+1, right);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement