归并排序C语言实现
来源:互联网 发布:js对象数组重新赋值 编辑:程序博客网 时间:2024/06/05 18:51
归并排序典型的分治策略的体现,时间复杂度是O(nlgn), 空间复杂度是O(n).属于稳定排序。
下面是C语言实现代码。
#define MAX 10000000//p, q, r是均是元素的下标void merge(int A[], int p, int q, int r){ int n1 = q - p + 1; int n2 = r - q; int * L = (int *)malloc(sizeof(int) * n1 + 1); int * R = (int *)malloc(sizeof(int) * n2 + 1); int i, j, k; for (i = 0; i < n1; i++) { L[i] = A[p + i]; } for (j = 0; j < n2; j++) { R[j] = A[q + j + 1]; } L[i] = MAX; R[j] = MAX; i = 0; j = 0; for (k = p; k <= r; k++) { if (L[i] <= R[j]) { A[k] = L[i]; i++; } else { A[k] = R[j]; j++; } }}void merge_sort(int A[], int p, int r){ if (p < r) { int q = (p + r) / 2; merge_sort(A, p, q); merge_sort(A, q + 1, r); merge(A, p, q, r); }}
0 0
- 归并排序 c语言实现
- 归并排序C语言实现
- 归并排序C语言实现
- 归并排序--C语言实现
- 归并排序C语言实现
- 归并排序--c语言实现
- C语言实现归并排序
- 归并排序 --C语言实现
- 排序(6)---------归并排序(C语言实现)
- 归并排序及C语言实现
- 归并排序递归实现C语言
- 归并排序非递归实现C语言
- 归并排序 MergeSort C语言实现
- C语言实现的归并排序
- 归并排序C语言实现MergeSort
- 用C语言实现归并排序
- 归并排序的C语言实现
- C语言实现普通归并排序
- 我是菜鸟------我自己感觉平时用eclipse用到的快捷键
- 黑马程序员——基础语法
- 【python自制】让大白成为你的个人助手!
- 算法设计与分析:第五章 回溯法 5.7构造高精度数据
- 学习编程的七个阶段
- 归并排序C语言实现
- MFC+OpenGL单文档实现图形旋转
- UI02_UIButton和UITextField
- win10升级后 IE 火狐 谷歌浏览器 不能上网 解决办法
- 各种安装程序下载
- ora 12560 协议适配器错误
- 黑马程序员——流程控制
- 算法设计与分析:第五章 回溯法 5.8流水作业车间调度
- 对mysql多表查询的理解