歸併排序習題1

來源:互聯網
上載者:User

標籤:style   blog   color   io   for   re   

一、題目

給定一組數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]);}

三、解題思路

運用歸併排序,分而治之的方法。

四、心得體會

這種整體方法必須掌握。而且,要明白其思想,內部是如何?的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.