码迷,mamicode.com
首页 > 其他好文 > 详细

Merge Sort

时间:2015-02-01 10:44:06      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

技术分享
 1 #include<stdlib.h>
 2 #include<stdio.h>
 3 void Merge( int source[] , int temp[] , int start , int mid , int end )
 4 {
 5     int i = start , j = mid + 1 , k = start ;
 6     while ( i != mid + 1 && j != end + 1 )
 7     {
 8         if( source[i] > source[j] )
 9             temp[k++] = source[i++];
10         else
11             temp[k++] = source[j++];
12     }
13     while( i != mid + 1 )
14         temp[k++] = source[i++];
15     while( j != end + 1 )
16         temp[k++] = source[j++];
17     for( i = start ; i <= end ; i++ )
18         source[i] = temp[i];
19 }   //ÄÚ²¿Ê¹Óõݹé
20 void MergeSort( int source[] , int temp[] , int start , int end )
21 {
22     int mid;
23     if( start < end )
24     {
25         mid = ( start + end ) / 2 ;
26         MergeSort( source , temp , start , mid );
27         MergeSort( source , temp , mid+1 , end );
28         Merge( source , temp , start , mid , end );
29     }
30 }
31 int main()
32 {
33     int a[]={18,78,244,36,9,12,4,5,68,7,4,895,321,50,10,30,98,74,56,13,25,46,789,420,159,360,5648,78,1,2,3,6,98};
34     int i,b[1000];
35     MergeSort( a , b , 0 , sizeof(a)/sizeof(a[0])-1 );
36     for( i = 0 ; i < sizeof(a)/sizeof(a[0]) ; i++ )
37         printf( "%d\t" , a[i] );
38     printf("\n");
39     return 0;
40 }
Merge

 

Merge Sort

标签:

原文地址:http://www.cnblogs.com/get-an-AC-everyday/p/4265215.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!