码迷,mamicode.com
首页 > 编程语言 > 详细

归并排序

时间:2014-11-19 12:03:54      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   color   sp   for   div   art   

参考:白话经典算法系列之五 归并排序的实现

 

 1 #include "stdafx.h"
 2 
 3 //t[]在外部申请,以此避免在函数体内部反复申请数组的开销。
 4 void merge_array(int a[], int left, int middle, int right, int t[]) 
 5 {
 6     int l = left, r = middle + 1, k = 0;
 7     while(l <= middle && r <= right)
 8     {
 9         if(a[l] < a[r])
10              t[k++] = a[l++];
11         else
12             t[k++] = a[r++];
13     }
14 
15     while(l <= middle)
16         t[k++] = a[l++];
17 
18     while(r <= right)
19         t[k++] = a[r++];
20 
21     for(int i = 0; i < k; ++i)
22         a[left + i] = t[i];       //mark!第一次忘记写left了。
23 }
24 
25 void merge_sort(int a[], int left, int right, int t[])
26 {
27     if(left >= right) return;
28     int middle = (left + right)/2;
29     merge_sort(a, left, middle, t);
30     merge_sort(a, middle + 1, right, t);
31     merge_array(a, left, middle, right, t);    
32 }
33 
34 int _tmain(int argc, _TCHAR* argv[])
35 {
36     int array[] = {7,10,19,25,12,17,21,30,48};
37     
38     int * t = new int[sizeof(array)/sizeof(int)];    
39     merge_sort(array, 0, sizeof(array)/sizeof(int) - 1, t);
40     delete []t;
41 
42     getchar();
43     return 0;
44 }

 

归并排序

标签:style   blog   http   ar   color   sp   for   div   art   

原文地址:http://www.cnblogs.com/kira2will/p/4107681.html

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