C语言归并算法
来源:互联网 发布:js中基本数据类型 编辑:程序博客网 时间:2024/05/16 01:20
#include <stdio.h>#include <stdlib.h>void splitArrays();void sortArrays(int num[], int start, int mid, int end);int main(int argc, const char * argv[]){ int num_really[11]; for (int i = 0; i < 11; i++) { num_really[i] = arc4random() % (90 - 10 + 1) + 10; } for (int i = 0; i < 11; i++) { printf("%d ", num_really[i]); } printf("\n"); splitArrays(num_really, 0, 10); for (int i = 0; i < 11; i++) { printf("%d ", num_really[i]); } printf("\n"); return 0;}void splitArrays(int num[], int start, int end) { int mid = (start + end) / 2; if (mid != start) { splitArrays(num, start, mid); splitArrays(num, mid + 1, end); sortArrays(num, start, mid, end); } else { sortArrays(num, start, mid, end); }}void sortArrays(int num[], int start, int mid, int end) { int num_left[mid - start + 1]; int num_right[end - mid]; //复制左子列 for (int i = 0; i < mid - start + 1; i++) { num_left[i] = num[start + i]; } //复制右子列 for (int i = 0; i < end - mid; i++) { num_right[i] = num[mid + 1 + i]; } int l_start = 0; int l_end = mid - start + 1; int r_start = 0; int r_end = end - mid; int sign = start; while (l_start < l_end && r_start < r_end) { if (num_right[r_start] < num_left[l_start]) { num[sign] = num_right[r_start]; r_start++; } else { num[sign] = num_left[l_start]; l_start++; } sign++; } //对于子列最后几个的处理 if (l_start == l_end) { for (r_start; r_start < r_end; r_start++) { num[sign] = num_right[r_start]; sign++; } } else if (r_start == r_end) { for (l_start; l_start < l_end; l_start++) { num[sign] = num_left[l_start]; sign++; } }}
0 0
- C语言归并算法
- 【算法】归并--C语言实现归并排序递归算法
- 算法导论 之 归并排序[C语言]
- 排序算法c语言描述---归并排序
- 【算法导论】归并排序,C语言实现
- C语言--归并排序算法实现
- C语言归并排序算法的实现
- C语言实现归并排序算法
- 数据结构和算法系列 - c语言归并排序法
- 归并排序的c语言代码--算法导论一致
- linux下归并排序(MergeSort)算法的C语言实现
- 排序算法系列:归并排序(Merge sort)(C语言)
- 二路归并排序算法实现-完整C语言程序
- C语言------排序算法------归并排序(六)
- 归并排序的实现(排序算法c语言描述)
- 18、 排序算法c语言描述---归并排序
- 算法导论 - 归并排序的 C 语言实现
- 归并排序的C语言实现【严蔚敏+算法导论】
- 命令行开发、编译、打包Android应用程序
- USB Driver
- HDU 2029 -- Palindromes _easy version
- 传说中的数据结构 栈
- Ubuntu下快速搭建DLNA服务
- C语言归并算法
- ASP项目中文件修改后,浏览器显示乱码问题
- Cocos studio 中的控件和LUA 联系代码
- 上课笔记--学术英语
- JAVA中的接口和抽象类(转)
- 新手如何推广优化自己的博客网站?
- HDU 2031 -- 进制转换
- Swift-可选链2
- 基于UDP高性能传输协议UDT doc翻译(一)