欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c++实现算法导论,归并排序

程序员文章站 2022-04-12 21:55:33
假设桌上有两堆牌面朝上的牌,每堆都已排序,最小的牌在顶上。我们希望把这两堆牌合并成单一的排好序的输出堆,牌面朝下地放在桌上。我们的基本步骤包括在牌面朝上的两堆牌的顶上两张牌中选取较...

假设桌上有两堆牌面朝上的牌,每堆都已排序,最小的牌在顶上。我们希望把这两堆牌合并成单一的排好序的输出堆,牌面朝下地放在桌上。我们的基本步骤包括在牌面朝上的两堆牌的顶上两张牌中选取较小的一张,将该牌从其堆中移开(该堆的顶上将显露一张新牌)并牌面朝下地将该牌放置到输出堆。

归并排序相关文字资料网上较多,在此不再叙述。

cpp代码

#include
using namespace std;

void merge(int num[],int beg,int mid,int end);
void mergeSort(int num[],int beg,int end);

int main()
{

    int data[] = {3,6,7,2,1,4,5,9,8};
    int length = 9;
    cout << "before sorted:" << endl;
    for(int i = 0;i < length;++i)
        cout << data[i] << "  ";
    cout << endl;
    cout << "after sorted:" << endl;
    mergeSort(data,0,length-1);
    for(int i = 0;i < length;++i)
        cout << data[i] << "  ";
    cout << endl;

    return 0;

}

void merge(int num[],int beg,int mid,int end)
{
  int temp[10];
  int t=beg;
  int i=beg,j=mid+1;
  while(i<=mid&&j<=end)
  {
    if(num[i]
运行结果

c++实现算法导论,归并排序