基于visual Studio2013解决算法导论之002归并排序
来源:互联网 发布:网络带来的方便 编辑:程序博客网 时间:2024/04/29 04:07
题目
归并排序
解决代码及点评
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <time.h>void PrintArr(int *pnArr, int nLen){for (int i = 0; i < nLen; i++){printf("%d ", pnArr[i]);}printf("\n");}//合并两个数组void Merge(int data[], int nLpos, int nRpos, int nRightEnd){int i;int k = nLpos;int nLeftEnd = nRpos;int nTmpPos = 0;int nLen = nRightEnd - nLpos + 1;int *pnArr = (int *)malloc(sizeof(int) * nLen);++nRpos;while (nLpos <= nLeftEnd && nRpos <= nRightEnd){if (data[nLpos] <= data[nRpos]){pnArr[nTmpPos++] = data[nLpos++];}else{pnArr[nTmpPos++] = data[nRpos++];}}while (nLpos <= nLeftEnd){pnArr[nTmpPos++] = data[nLpos++];}while (nRpos <= nRightEnd){pnArr[nTmpPos++] = data[nRpos++];}nTmpPos = 0;for (i = k; i <= nRightEnd; i++){data[i] = pnArr[nTmpPos++];}free(pnArr);}void MergeSort(int *pnArr, int nLeft, int nRight){if (nLeft > nRight){return;}if (nRight > nLeft){//1分解int nMid = (nLeft + nRight) / 2;//2解决MergeSort(pnArr, nLeft, nMid);MergeSort(pnArr, nMid + 1, nRight);//3合并Merge(pnArr, nLeft, nMid, nRight);}}int main(){srand(time(NULL));int nArr[10];for (int i = 0; i < 10; i++){nArr[i] = rand()%100;}printf("排序前:");PrintArr(nArr, 10);MergeSort(nArr, 0, 9);printf("排序后:");PrintArr(nArr, 10);system("pause");return 0;}
代码下载及其运行
代码下载地址:http://download.csdn.net/detail/yincheng01/6858815
解压密码:c.itcast.cn
下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:
1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”
2)在下拉框中选择相应项目,项目名和博客编号一致
3)点击“本地Windows调试器”运行
程序运行结果
0 0
- 基于visual Studio2013解决算法导论之002归并排序
- 基于visual Studio2013解决算法导论之001插入排序
- 基于visual Studio2013解决算法导论之012计数排序
- 基于visual Studio2013解决算法导论之055拓扑排序
- 基于visual Studio2013解决算法导论之001插入排序
- 基于visual Studio2013解决算法导论之008快速排序算法
- 基于visual Studio2013解决面试题之1405归并排序
- 基于visual Studio2013解决算法导论之003雇佣问题
- 基于visual Studio2013解决算法导论之013基数排序
- 基于visual Studio2013解决算法导论之020单链表
- 基于visual Studio2013解决算法导论之026二叉树
- 基于visual Studio2013解决算法导论之027hash表
- 基于visual Studio2013解决算法导论之042单源最短路径
- 基于visual Studio2013解决算法导论之047赫夫曼编码
- 基于visual Studio2013解决算法导论之048红黑树
- 基于visual Studio2013解决算法导论之051区间树
- 基于visual Studio2013解决算法导论之052深度优先
- 基于visual Studio2013解决算法导论之006最大堆排序
- 考试周结束的前兆
- maven plugin 开发
- bugfree安装与配置
- Windows7下Telnet安装和测试
- MFC中对话框向视图类的数据发送
- 基于visual Studio2013解决算法导论之002归并排序
- SpringMvc简单注解配置
- JAVA中SERIALVERSIONUID的解释
- 使用openssl命令剖析RSA私钥文件格式
- Qt获取当前时间
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- onethink-(02)-APMServ5.2.6 升级php5.2 到 5.3.7
- 批量删除Amazon云端文件
- EBS输出HTML报表中文乱码