zoukankan      html  css  js  c++  java
  • 归并排序习题1

    一、题目

    给定一组数5,2,4,6,1,3,2,6;运用归并排序法对这组数进行排序。

    二、题目源程序

    #include<stdio.h>
    #include<string.h>
    int L[100],R[100];
    void merge(int numbers[],int left, int mid, int right)
            {
                int n1=mid-left+1;
                int n2=right-mid;
                int i,j,k;
                for(i=1;i<=n1;i++)
                 L[i]=numbers[left+i-1];
                for( j=1;j<=n2;j++)
                 R[j]=numbers[mid+j];
                L[n1+1]=99999;
                R[n2+1]=99999;
    
                i=1;
                j=1;
    
                for(k=left;k<=right;k++)
                if(L[i]<=R[j])
                   {
                       numbers[k]=L[i];
                       i++;
                       }
                     else
                      {
                           numbers[k]=R[j];
                           j++;
                      }
            }
    
    void mergeSort(int numbers[],int left, int right)
    
    {
        if(left<right)
        {
                int mid;
                mid = (right + left) / 2;
                mergeSort(numbers, left,  mid);
                mergeSort(numbers, mid+1, right);
                merge(numbers,left, mid, right);
            }
    
    }
    
    int  main()
    {
        int numbers[]={5,2,4,6,1,3,2,6};
        mergeSort(numbers,0,7);
        int i;
        for(i=0;i<8;i++)
          printf("%d",numbers[i]);
    }

    三、解题思路

    运用归并排序,分而治之的方法。

    四、心得体会

    这种整体方法必须掌握。而且,要明白其思想,内部是如何实现的。

  • 相关阅读:
    Fruit HDU
    排列组合 HDU
    XOR and Favorite Number CodeForces
    BZOJ-6-2460: [BeiJing2011]元素-线性基
    CDH 安装与部署
    Apache Hadoop集群搭建
    大数据架构与技术选型
    项目落实方案选择思考(KUDU)
    JAVA 高级篇
    大数据就业岗位
  • 原文地址:https://www.cnblogs.com/fightfor/p/3858566.html
Copyright © 2011-2022 走看看