归并排序
来源:互联网 发布:浙江华通云数据上市 编辑:程序博客网 时间:2024/06/09 14:07
归并排序:利用"归并"技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。可以用于外排序。
# include <stdio.h>void merge_sort(int a[],int b[],int low,int high);void merge(int a[],int b[],int low,int mid,int high);int main(void){int a[]={4165,46,41,984,531,6,4653,6,46,4,64,63};int b[100];//辅助数组 merge_sort(a,b,0,sizeof(a)/sizeof(a[0])-1); for (int i=0;i<sizeof(a)/sizeof(a[0]);++i)printf ("%d ",a[i]);return 0;}void merge_sort(int a[],int b[],int low,int high){if (low >= high)return;int mid = (low+high)/2;merge_sort(a,b,low,mid);//分治法 merge_sort(a,b,mid+1,high);////分治法 merge(a,b,low,mid,high);}void merge(int a[],int b[],int low,int mid,int high){int i,j,k;for (i=low;i<=high;++i)b[i] = a[i];i = low;j = mid+1;k = low;while(i <= mid && j <= high)//将b中的数据排序后存入a中 {if (b[i] <= b[j])a[k++] = b[i++];elsea[k++] = b[j++];}while(i<=mid)//将b中i~mid中的剩余元素存入a中 a[k++] = b[i++];while(j<=high)//将b中mid~high中的剩余元素存入a中 a[k++] = b[j++];}
0 0
- 归并排序-归并排序
- 归并和归并排序
- 归并与归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 排序::归并
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- js中for in 和 for each in的使用
- Hive建立外部表与时间戳转换(含建dual表,修改列名,row_number() 函数等)
- Bezier曲线原理
- 有趣的数
- 第五周项目23-静态成员应用
- 归并排序
- Android开发:GPU过度绘制的优化
- iOS开发的一些小技巧
- OpenCV通过cvFindContours与cvDrawCountours函数查找轮廓
- 文章标题
- leetcode---Remove Nth Node From End of List
- 《Thinking in Java》第五篇笔记 就Java中的操作流程简单说几句
- leetcode:Substring with Concatenation of All Words
- sql基本用法