合并排序即归并排序,
这个好型是数据结构最后一章查找和排序的知识,这部分还有上一章的各种算法,像最短路径,最小花费似乎都学的很拉
#include<iostream>
using namespace std;
void Merge(int r[], int low, int mid, int high)
{
int *B = new int[high - low + 1];
int i = low, j = mid + 1,k=0;
while (i <= mid && j <= high)
{
if (r[i] <= r[j])
{
B[k++] = r[i++];
}
else
{
B[k++] = r[j++];
}
}
while (i <= mid) B[k++] = r[i++];
while (j <= high) B[k++] = r[j++];
for (int i = low,k=0; i <= high; i++)
{
r[i] = B[k++];
}
delete []B;
}
void MergeSort(int r[], int low, int high)
{
if (low < high)
{
int mid = (low + high) / 2;
MergeSort(r, low, mid);
MergeSort(r, mid + 1, high);
Merge(r, low, mid, high); //先拆分,在融合
}
}
int main() {
int r[5] = {1,5,3,4,2};
MergeSort(r, 0, 4);
for (int i = 0; i < 5; i++)
{
cout << r[i] << " ";
}
return 0;
}
最后
以上就是温柔小懒猪最近收集整理的关于合并排序--的全部内容,更多相关合并排序--内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复