提交 dab57924 编写于 作者: 7 7wc98#14

update

上级 c6b7e608
......@@ -45,6 +45,11 @@ int main()
MaxHeapSort(a6, 10);
for (int i = 1; i <= 10; i++)
cout << a6[i] << " ";
int a7[] = { 49,38,65,97,76,13,27 };
cout << endl << "二路归并排序:";
MergeSort(a7, 0, 6);
for (int i = 0; i < 7; i++)
cout << a7[i] << " ";
return 0;
}
......
......@@ -273,4 +273,31 @@ void MaxHeapSort(int a[], int len)
a[1] = t;
MaxHeapAdjust(a, 1, i - 1);
}
}
// 二路归并排序
int* b = new int[20];
void Merge(int a[], int low, int mid, int high)
{
int i, j, k;
for (k = low; k <= high; k++)
b[k] = a[k];
for (i = low, j = mid + 1, k = i; i <= mid && j <= high; k++)
{
if (b[i] <= b[j])
a[k] = b[i++];
else
a[k] = b[j++];
}
while (i <= mid) a[k++] = b[i++];
while (j <= high)a[k++] = b[j++];
}
void MergeSort(int a[], int low, int high)
{
if (low < high)
{
int mid = (low + high) / 2;
MergeSort(a, low, mid);
MergeSort(a, mid + 1, high);
Merge(a, low, mid, high);
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册