2.3-2
2015-09-09 10:54
253 查看
/*不适用哨兵的MERGE*/ void Merge(int *A,int p , int q ,int r) { int n1 = q - p + 1; int n2 = r - q; int * L = new int[n1]; //new为c++中的用法,类似malloc int * R = new int[n2]; for (int i = 0; i < n1; ++i) { L[i] = A[p+i-1]; } for (int j = 0; i < n2; ++i) { R[j] = A[q+j]; } int i = 0 ; int j = 0; int k = p - 1 ; while((i <= n1-1)&&(j <= n2-1)) { if(L[i] <= R[j]) { A[k] = L[i]; i++; } else { A[k] = R[j]; j++; } while(i>=n1-1) { A[k] = L[i]; i++; k++; } while(j>=n2-1) { A[k] = R[j]; j++; k++; } delete []L; delete []R; } }
相关文章推荐
- js弹出框、对话框、提示框、弹窗总结
- 部署实战
- 把数组排成最小的数
- table_open_cache参数对mysql性能的影响
- CentOS 6.5系统安装vsFTPd并配置虚拟用户
- 区分Oracle的数据库,实例,服务名,SID
- JQuery AJAX
- Android实战技巧:如何在ScrollView中嵌套ListView
- hdu3037 lucas
- JavaScript中实现Map的示例代码
- Win 8系统中为IE浏览器添加Flash插件的方法
- ViewController生命周期详解
- java类加载器的秘密
- Android Studio SDK 更新方法
- iOS - 正则表达式判断邮箱、身份证..是否正确
- 使用curl命令操作elasticsearch
- RFM模型及R语言实现
- Swift UIImageView 构造方法
- VxWorks操作系统shell命令与调试方法总结
- Expected a type 的错误