我的c\c++之旅(二)——归并排序
来源:互联网 发布:学唇语软件 编辑:程序博客网 时间:2024/05/17 08:49
归并排序
/* without malloc error check */void Merge(int *sequence, int *tmpsequence, int leftbegin, int center, int rightend){ int i, recordleft, leftend, rightbegin; i = recordleft = leftbegin;leftend = center; rightbegin = center + 1; while(leftbegin <= leftend && rightbegin <= rightend) { if(sequence[leftbegin] < sequence[rightbegin]) tmpsequence[i++] = sequence[leftbegin++]; else tmpsequence[i++] = sequence[rightbegin++]; } while(leftbegin <= leftend)tmpsequence[i++] = sequence[leftbegin++]; while(rightbegin <= rightend)tmpsequence[i++] = sequence[rightbegin++]; for(i = recordleft; i <= rightend; i++)sequence[i] = tmpsequence[i];}void MSort(int *sequence, int *tmpsequence, int left, int right){int center; if(left < right) { center = (left + right) / 2; MSort(sequence, tmpsequence, left, center); MSort(sequence, tmpsequence, center+1, right); Merge(sequence, tmpsequence, left, center, right); }}void Merge_Sort(int *sequence, int n){ int *tmpsequence;tmpsequence = (int*)malloc(sizeof(int) * n);MSort(sequence, tmpsequence, 0, n-1);free(tmpsequence);}
0 0
- 我的c\c++之旅(二)——归并排序
- C++——算法基础之排序——二路归并排序
- C/C++排序之二(直接插入排序、 折半插入排序、归并排序(递归))
- 读书笔记—C 归并排序
- 归并排序(C)
- 归并排序(c++)
- C语言之归并排序
- 二路归并排序(迭代)——ANSI C实现
- 我的c\c++之旅(八)——Shell排序
- 我的c\c++之旅(三)——堆排序
- 我的c\c++之旅(一)——插入排序
- IOS之C语言 (二路归并与冒泡排序)
- 归并排序(C/C++)
- C语言——归并排序练习题
- C语言排序之归并排序篇
- 二路归并排序(C语言实现)
- 二路归并排序c语言实现
- 为了offer系列——归并排序(C++)
- Nginx做负载均衡无法加载css,js
- listView 打造万能适配器
- 【Oracle】RAC11gR2 Grid启动顺序及启动故障诊断思路
- 从远程服务器向本地系统复制文件(centos之间)
- 【BZOJ3747】[POI2015]Kinoman【线段树】
- 我的c\c++之旅(二)——归并排序
- [计网学习笔记(2)] Web应用
- 设计模式读书笔记----享元模式
- ]cocos2d-x里子Sprite随父Sprite透明度变化
- HTML5 -- 使用css3实现简单的响应式布局
- ERP小型集团化——重点功能及二次开发配置——清单查找/树形查找
- getchar的用法
- 腾讯面试题(奶牛产子问题)
- 金智教育校园招聘笔试