归并排序(C语言版)
来源:互联网 发布:有思想的网络频道 编辑:程序博客网 时间:2024/05/21 09:00
归并排序的思想:将无序序列切割为若干个有序序列然后排序;#include <stdio.h>#include <string.h>#include <stdlib.h>void merge(int *a, int left, int right, int mid){ int b[10000]; int i, j, k; for(i=left, j=mid+1, k=0; i<=mid&&j<=right; k++){ if(a[i]<a[j]) b[k]=a[i++]; else b[k]=a[j++]; } while(i<=mid){ b[k++]=a[i++]; } while(j<=right){ b[k++]=a[j++]; } memcpy(a+left, b, k*sizeof(int)); return;}void merge_sort(int *a, int left, int right){ if(left<right){ int mid=(left+right)/2; merge_sort(a, left ,mid); merge_sort(a, mid+1, right); merge(a, left, right, mid); }}int a[1000];int main(){ int n; while(scanf("%d", &n), n){ int i; for(i=0; i<n; i++){ scanf("%d", &a[i]); } merge_sort(a, 0, n-1); for(i=0; i<n; i++) printf("%d%c", a[i], i==n-1?'\n':' '); } return 0;}
阅读全文
0 0
- 归并排序(C语言版)
- 归并排序(C语言版)
- 归并排序 --- C语言版
- 归并排序C语言版
- 归并排序(C语言版)
- 数据结构与算法(C语言版)__归并排序
- 经典排序——归并排序——C语言版
- C语言版的磁盘文件分片归并排序函数
- C语言版的磁盘分片归并排序函数
- C语言版的磁盘文件分片归并排序函数
- C语言版的磁盘文件分片归并排序函数
- C语言版的磁盘文件分片归并排序函数 --- 转载
- C语言版的磁盘文件分片归并排序函数(转)
- 快速排序(c语言版)
- 插入排序(c语言版)
- 插入排序(c语言版)
- 希尔排序(C语言版)
- 快速排序(C语言版)
- 在Windows中搭建开发环境
- dubbo异常:Failed to check the status of the service . No provider available for the service 解决
- linux中shell截取字符串方法总结
- #CCF准备一年日常刷题#201509-2 日期计算
- hibernate的开发步骤
- 归并排序(C语言版)
- 最新Android框架排行榜
- Python基础整理
- 解决Hibernate懒加载的4种方式
- TankWar游戏(图片版)----阶段五
- 奥维奥:SAP Business One助力新零售 天猫双11成校验场
- 前端上传组件Plupload
- 第1章 Activity的生命周期和启动模式
- Android基础之BottomSheet的介绍和使用