博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法-MergeSort
阅读量:4614 次
发布时间:2019-06-09

本文共 1393 字,大约阅读时间需要 4 分钟。

1 #include 
2 #include
3 #include
4 5 using namespace std; 6 7 int COMPARE_COUNT = 0; 8 9 void merge_sort(vector
&array, vector
&aux, int lo, int hi)10 {11 if ( lo >= hi )12 return;13 14 int mid = ( hi + lo ) / 2;15 merge_sort(array, aux, lo, mid);16 merge_sort(array, aux, mid + 1, hi);17 18 //vector
aux;19 for ( int i = lo; i < hi +1; ++i )20 aux[i] = array[i];21 22 int i = lo;23 int j = mid + 1;24 int k = lo;25 26 while ( k < hi + 1 )27 {28 if ( i > mid ) array[k++] = aux[j++];29 else if ( j > hi ) array[k++] = aux[i++];30 else if ( aux[i] <= aux[j] ) 31 {32 array[k++] = aux[i++];33 COMPARE_COUNT++;34 }35 else{36 array[k++] = aux[j++];37 COMPARE_COUNT++;38 }39 }40 41 return;42 }43 44 void Print(const vector
&array)45 {46 vector
::const_iterator _begin = array.begin();47 while ( _begin != array.end() )48 cout<<*_begin++<<" ";49 50 cout<
>size;58 59 vector
array;60 for ( int i = 0; i < size; ++i )61 array.push_back( rand() % size + 1);62 63 cout<<"The shuffling array is:"<
aux;67 aux.resize(array.size());68 //aux = array;69 merge_sort(array, aux, 0, size - 1);70 71 cout<<"The sorted array is:"<

输出结果:

 

转载于:https://www.cnblogs.com/pbendan/p/4732097.html

你可能感兴趣的文章
【华为机试】—— 11.数字颠倒
查看>>
统计02 离中趋势
查看>>
BJOI2015 Day1
查看>>
FOJ 1402(dp推规律)
查看>>
算法案例学习
查看>>
实现水平垂直居中的几种方法
查看>>
Jetty-attack-test
查看>>
IDEA个人常用快捷键总结
查看>>
Alpine Linux 使用简介
查看>>
【博客之星】CSDN2013博客之星--分析和预测
查看>>
人类为什么要努力工作
查看>>
简单二分图匹配
查看>>
在action里面创建pie图和柱状图
查看>>
需要去了解的知识
查看>>
学习进度(2)
查看>>
数据通信技术2
查看>>
WEB前端学习有用的书籍
查看>>
算法 - 最长无重复子串
查看>>
applet程序组件与AJAX技术
查看>>
常用有三种json解析jackson、fastjson、gson。
查看>>