Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1f7b01b

Browse files
authored
Update 5.mergeSort.md
1 parent 4534fa5 commit 1f7b01b

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

‎5.mergeSort.md‎

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -227,34 +227,36 @@ function merge($left, $right)
227227
## 9. C++ 代码实现
228228

229229
```cpp
230-
void merge(vector<int>& nums, int l, int mid, int r) {
230+
void merge(vector<int>& arr, int l, int mid, int r) {
231231
int index = 0;
232232
int ptrL = l;
233233
int ptrR = mid;
234234
static vector<int>tempary;
235-
tempary.resize(nums.size());
235+
if (arr.size() > tempary.size()) {
236+
tempary.resize(arr.size());
237+
}
236238
while (ptrL != mid && ptrR != r) {
237-
if (nums[ptrL] < nums[ptrR]) {
238-
tempary[index++] = nums[ptrL++];
239+
if (arr[ptrL] < arr[ptrR]) {
240+
tempary[index++] = arr[ptrL++];
239241
} else {
240-
tempary[index++] = nums[ptrR++];
242+
tempary[index++] = arr[ptrR++];
241243
}
242244
}
243245
while (ptrL != mid) {
244-
tempary[index++] = nums[ptrL++];
246+
tempary[index++] = arr[ptrL++];
245247
}
246248
while (ptrR != r) {
247-
tempary[index++] = nums[ptrR++];
249+
tempary[index++] = arr[ptrR++];
248250
}
249-
copy(tempary.begin(), tempary.begin() + index, nums.begin() + l);
251+
copy(tempary.begin(), tempary.begin() + index, arr.begin() + l);
250252
}
251-
void mergeSort(vector<int>& nums, int l, int r) {// sort the range [l, r), so if there is a 0-index array arr whose length is n
252-
if (r - l <= 1) { //and you want sort the whole array, "mergeSort(arr, 0, n)" should be called
253+
void mergeSort(vector<int>& arr, int l, int r) {// sort the range [l, r) in arr
254+
if (r - l <= 1) {
253255
return;
254256
}
255257
int mid = (l + r) / 2;
256-
mergeSort(nums, l, mid);
257-
mergeSort(nums, mid, r);
258-
merge(nums, l, mid, r);
258+
mergeSort(arr, l, mid);
259+
mergeSort(arr, mid, r);
260+
merge(arr, l, mid, r);
259261
}
260262
```

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /