归并排序
来源:互联网 发布:窥孔优化 编辑:程序博客网 时间:2024/06/13 01:44
#include "stdio.h"int b[100];void merge(int a[], int left, int mid, int right){ int l = left; int m = mid+1; int k = 0; while(l<=mid && m<=right) //如果左半区间或右半区间结束,则跳出循环 { if(a[l] <= a[m]) //如果左半区间元素较小 b[k++] = a[l++]; else //如果右半区间元素较小 b[k++] = a[m++]; } while(l<=mid) //如果左半区间元素剩余 b[k++] = a[l++]; while(m<=right) //如果有半区间元素剩余 b[k++] = a[m++]; int i; for(i=0; i<(right-left+1); i++) //将结果复制回数组a[] a[left+i] = b[i];}void mergeSort(int a[], int left, int right){ if(left<right) //至少有两个元素 { int mid = (left + right)/2; //取中点 mergeSort(a, left, mid); //对左半区间进行排序 mergeSort(a, mid+1, right); //对右半区间进行排序 merge(a, left, mid, right); //将结果进行合并 }}int main(){ int a[100]; int len; printf("输入元素个数:"); scanf("%d", &len); printf("输入元素:"); int i; for(i=0; i<len; i++) scanf("%d", &a[i]); mergeSort(a, 0, len-1); for(i=0; i<len; i++) printf("%d ", a[i]); printf("\n"); return 0;}
0 0
- 归并排序-归并排序
- 归并和归并排序
- 归并与归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 排序::归并
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- resizableImageWithCapInsets实现登录按钮、胶囊tab按钮和聊天气泡贴图效果
- 二分搜索
- [Django入门知识浅介]Django的搜索路径与Import机制
- 第114讲:Hadoop集群安装解析学习笔记
- View的事件分发机制。
- 归并排序
- 快速排序
- sicily. 放鸡蛋(输出情况总数+输出具体情况)
- 第二阶段
- poj 2104 K-th Number (主席树学习第一弹)
- 排列问题
- Rational Rose
- Django+Markdown+Pygments 支持Markdown 实现代码高亮
- 棋盘覆盖