归并排序
来源:互联网 发布:唐氏筛查 测算软件 编辑:程序博客网 时间:2024/05/23 13:03
从网上学习,并调试通过:
#include <stdio.h>
#define MAX 10
int array[MAX];
void init() {
int a;
printf("intput %d numbers:\n", MAX);
for (a = 0; a < MAX; a++) {
scanf("%d", &array[a]);
}
printf("input over.\n");
}
void merge( int low, int mid, int high) {
int h,k,i,j;
int new_array[MAX];
h = low;
i = 0;
j = mid + 1;
while(h <= mid && j<= high) {
if ( array[h] <= array[j]) {
new_array[i] = array[h];
h++;
} else {
new_array[i] = array[j];
j++;
}
i++;
}
while(h<= mid)
new_array[i++] = array[h++];
while(j<=high)
new_array[i++] = array[j++];
for ( i = 0, k=low; i<= high-low;i++,k++)
array[k] = new_array[i];
}
void mergesort(int low, int high) {
int mid;
if(low < high) {
mid = (high + low)/2;
mergesort(low, mid);
mergesort(mid+1, high);
merge(low, mid, high);
}
}
void print()
{
int i;
for (i = 0; i< MAX; i++) {
printf("array[%d] is %d\n", i, array[i]);
}
}
void main(void)
{
init();
print();
mergesort(0, MAX-1);
printf("after sort array:\n");
print();
}
- 归并排序-归并排序
- 归并和归并排序
- 归并与归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 排序::归并
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- oms
- 你需要知道的关于NoSQL数据库的10件事
- android Spinner实现一个二级联动的下拉列表,选定省份后,城市的下拉列表出现相应变化
- Activating components: intents 待续
- 16个螺旋桨的直升机 带你一飞冲天
- 归并排序
- 与MSSQL的dateadd函数功能一致的pb加强版时间函数:f_dateadd
- raw socket
- 用java mail 发邮件的代码,支持群发
- 零零碎碎的网站优化12点
- TimeUnit
- 团队领导的实践指南(软件开发团队)
- outlook定期提醒
- 水平营销——“跳出盒子”的思考