mergsort.c
时间复杂度O(n)
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->#include <stdio.h>
#include <stdlib.h>
void merge_sort_inner(int A[], int p, int r)
{
int q, i, j, k, n1, n2;
int temp, *L, *R;
if(p < r)
{
q = (p + r) / 2;
merge_sort_inner(A, p, q);
merge_sort_inner(A, q+1, r);
n1 = q - p + 1;
n2 = r - q;
L = (int*)malloc(sizeof(int) * (n1+1));
R = (int*)malloc(sizeof(int) * (n2+1));
for(i = 0; i < n1; i ++)
L[i] = A[p + i];
for(i = 0; i < n2; i ++)
R[i] = A[q + i + 1];
L[n1] = R[n2] = 2147483647;
i = 0;
j = 0;
for(k = p; k <= r; k ++)
if(L[i] <= R[j])
A[k] = L[i++];
else
A[k] = R[j++];
free(L);
free(R);
}
}
void merge_sort(int A[], int n)
{
merge_sort_inner(A, 0, n - 1);
}
int main()
{
int A[] = {3, 7 ,2, 0, 1,3, 2};
int i;
merge_sort(A, 7);
for(i = 0; i < 7; i ++)
printf("%d ", A[i]);
printf(" ");
system("pause");
return 0;
}
mergsort.c相关推荐
- 链表节点合并排序:数组和单链表
每日一贴,今天的内容关键字为链表节点 1 数组合并排序 1.1 合并两个已排序好的数组 需要额定的存储空间用来存储合并结果 //merge two array which are already so ...
- 排序算法二:归并排序(Merge sort)
归并排序(Merge sort)用到了分治思想,即分-治-合三步,算法平均时间复杂度是O(nlgn). (一)算法实现 1 private void merge_sort(int[] array, i ...
- 面试基础算法、及编程 第一弹
// # -*- coding:utf-8 -*- // # @Author: Mr.chen(ai-chen2050@qq.com) // # @Date: 2018-07-31 17:54:26 ...
- 常用的数据结构和算法
一.数据结构 1.队列 一种先进先出的数据结构 2.栈 一种后进先出的数据结构 3.树 树的遍历算法: 先序遍历 中序遍历 后续遍历 层序遍历 4.图 图的遍历算法: 深度优先遍历算法 广度优先遍历算 ...
- 数据结构之八大排序总结
1.排序的概念:排序就是将一组数据按照一定的顺序,递增或递减排列起来. 2.排序的稳定性:对于两个关键字相等的记录,它们在序列中的相对位置,在排序之前和经过排序之后,没有改变. 3.内部排序与外部排序 ...
- Beaver‘s Calculator(分层排序)
//Beaver's Calculator(分层排序) #include<bits/stdc++.h> #include<stdio.h> using namespace st ...
- 2023年贵州信息技术教师培训(day19 分治)
分治 分治算法 归并排序 例 三友行OJ( www.oj7.c)求逆序对. 一元三次方程求解 循环比赛日程表(match) 分治算法 什么是分治算法(Divide and Conquer)是一种解决复 ...
最新文章
- CBS多机器人路径规划
- 11.Verilog中如何避免Latch
- SQL实战篇:SQL优化问题
- django项目连接远程数据库
- php是fast_cgi模式,cpanel中的php运行方式使用fast-cgi模式的配置方法
- 三个故事看懂了再结婚(转)
- linux以命令行下配置连接wlan无线网卡
- Listary Pro - 搜索、管理都挺好
- 《程序人生》风雨十年-从大学到技术专家我做了啥?
- PS笔记:调色部分理论基础
- 【Unity】角色动画控制
- C++中经典的垃圾回收算法
- armplayer 风靡全球的Android s3c6410 arm11 手机开发板 超低价
- MONGODB 开发架构设计与模型设计
- 主题 10:如何将工作中的创新点转化为专利
- (JVM) 沙箱安全机制
- python第一个发行版本由c语言实现_1 晓白的python逆袭之旅基础篇---第一章
- 新人JS从入门到入土(一)
- 超级实用---打字时自动禁用触摸板,避免误触的烦恼!
- java canwrite_Java File canWrite()用法及代码示例