We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 50f6ed9 commit 5620932Copy full SHA for 5620932
1 file changed
archive/c/c-plus-plus/quick-sort.cpp
@@ -65,28 +65,30 @@ vector<int> convert(string s)
65
66
int partition1(vector<int> &a, int l, int u)
67
{
68
- int v, i, j, temp;
69
- v = a[l];
70
- i = l;
71
- j = u + 1;
72
- do
+ int pivot = a[l];
+ int i = l;
+ int j = u + 1;
+
+ while (true)
73
74
do
75
- i++;
76
- while (a[i] < v && i <= u);
+ {
+ ++i;
77
+ } while (i <= u && a[i] < pivot);
78
79
- j--;
- while (v < a[j]);
80
- if (i < j)
81
82
- temp = a[i];
83
- a[i] = a[j];
84
- a[j] = temp;
85
- }
86
- } while (i < j);
87
- a[l] = a[j];
88
- a[j] = v;
89
- return (j);
+ --j;
+ } while (a[j] > pivot);
+ if (i >= j)
+ break;
+ swap(a[i], a[j]);
+ }
90
+ swap(a[l], a[j]);
91
+ return j;
92
}
93
94
void quick_sort(vector<int> &a, int l, int u)
0 commit comments