Skip to content

Commit

Permalink
Merge pull request #1 from 2936170194/main
Browse files Browse the repository at this point in the history
Merge Sort add by Jie Li
  • Loading branch information
gaolei-he authored Feb 2, 2024
2 parents fbe8203 + a16d3b7 commit b9a1671
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions C++数据结构的可能实现/Merge Sort
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@

#include <iostream>
using namespace std;

const int N = 1e6 + 10;

int q[N], tmp[N];

int n;

void MergeSort(int q[], int l, int r)
{
if (l >= r)
{
return;
}

int mid = l + r >> 1;
MergeSort(q, l, mid);
MergeSort(q, mid + 1, r);
int i = l;
int j = mid + 1;
int k = 0;
while (i <= mid && j <= r)
{
if (q[i] <= q[j])
{
tmp[k++] = q[i++];
}
else
{
tmp[k++] = q[j++];
}
}

while (i <= mid)
{
tmp[k++] = q[i++];
}
while (j <= r)
{
tmp[k++] = q[j++];
}

for (int i = l, j = 0; i <= r; i++)
{
q[i] = tmp[j++];
}
}

int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> q[i];
}

MergeSort(q, 0, n - 1);

for (int i = 0; i < n; i++)
{
cout << q[i] << ' ';
}

return 0;
}

0 comments on commit b9a1671

Please sign in to comment.