- 浏览: 72699 次
- 性别:
- 来自: 北京
排序算法---归并排序
- 博客分类:
- 嵌入式
#include <stdio.h> void merge(int a[], int tmp[],int pleft, int pright, int rightend) { int leftend=pright-1; int num=rightend-pleft+1; int pos=pleft; while(pleft<=leftend && pright<=rightend) { if(a[pleft]<=a[pright]) tmp[pos++]=a[pleft++]; else tmp[pos++]=a[pright++]; } while(pleft<=leftend) tmp[pos++]=a[pleft++]; while(pright<=rightend) tmp[pos++]=a[pright++]; int i; for(i=0;i<num;i++,rightend--) a[rightend]=tmp[rightend]; } void msort(int a[], int tmp[], int left, int right) { int mid=(left+right)/2; if(left<right) { msort(a,tmp,left,mid); msort(a,tmp,mid+1,right); merge(a,tmp,left,mid+1,right); } } void merge_sort(int a[], int n) { int tmp=malloc(n*sizeof(int)); if (tmp!=NULL) { msort(a,tmp,0,n-1); free(tmp); } else printf("error!\n"); }
发表评论
-
排序算法---计数排序
2011-11-27 14:57 556#include <stdio.h> vo ... -
排序算法---交换排序(冒泡排序、快速排序)
2011-11-26 19:32 665#include <stdio.h> vo ... -
排序算法---选择排序(简单插入排序、堆排序)
2011-11-26 19:31 598#include <stdio.h> vo ... -
排序算法---插入排序(简单排序、shell排序)
2011-11-26 19:29 600#include <stdio.h> vo ... -
删除字符串中的特定字符和重复字符
2011-11-26 13:45 630#include <stdio.h> vo ... -
Linux编程-多线程、同步和互斥(转载)
2011-11-14 15:27 1151http://www.cnblogs.com/skynet/a ... -
寻找字符串中的最大数字子串
2011-09-22 17:17 1471#include <stdio.h> int f ... -
删除子字符串
2011-09-21 15:27 562#include <stdio.h> #incl ... -
c语言随机数
2011-09-18 17:15 655#include <stdio.h> #i ... -
带头结点有序单链表的合并
2011-09-08 14:21 1143typedef int Item; typedef s ... -
链表逆序的递归/非递归算法
2011-09-01 23:37 1357/** *链表逆序的递归/非递归算法 */ # ... -
递归算法---字符串---全/部分组合和全排列
2011-08-30 23:01 1173#include <stdio.h> #i ... -
递归算法---0-1背包问题(面试宝典)
2011-08-28 21:11 1852/** *正整数n,m,从数列1、2、3、...、n中随 ... -
递归算法---字符串全组合(面试宝典)
2011-08-28 17:24 1210/** *求一字符串所有字串的组合 */ #i ... -
递归算法---求解多元一次方程
2011-08-28 10:38 1860/** * 求解x1+x2+x3+...+x10 = ... -
(zz)关于类的sizeof
2011-08-27 18:16 524http://blog.sina.com.cn/s/blog_ ... -
(zz)结构体字节对齐原则
2011-08-27 17:53 1548结构体默认的字节对齐一般满足三个准则: 结构体变量的首 ... -
list.h from linux-2.4
2011-08-25 09:59 569#ifndef _LIST_H_ #define _L ... -
The C Programming Lang (K&R) hash table
2011-08-25 09:52 899hash.h #include <stdio.h ... -
Josephus环
2011-08-23 11:20 660/*************************** ...
相关推荐
详解Java常用排序算法-归并排序
排序算法-归并排序详细讲解(MergeSort)
基于python的排序算法-归并排序Merge Sort
最快的排序算法 谁才是最强的排序算法:快速排序-归并排序-堆排序,排序算法数据结构
经典排序算法 - 归并排序Merge sort 经典排序算法 - 冒泡排序Bubble sort 经典排序算法 - 选择排序Selection sort 经典排序算法 - 鸡尾酒排序Cocktail sort 经典排序算法 - 希尔排序Shell sort 经典排序算法 - ...
算法-数据结构和算法-14-归并排序.rar
算法-理论基础- 排序- 归并排序(包含源程序).rar
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
VC++多线程实现三种排序算法比较----冒泡排序、快速排序、归并排序,很有意思,可以下载看看!
此文件为数据结构中的九种排序算法,包含一些排序方法的过程,其九种排序包括:直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,基数排序!
归并排序,排序等算法,数据结构,快速排序,链表排序归并排序,排序等算法,数据结构,快速排序,链表排序
算法设计,给出归并排序的C++实现代码,并利用给随机数方式求运行时间
大数据-算法-基于归并的高效排序算法的研究.pdf
python 归并排序算法 归并排序是一种基于分治思想的排序算法,它将待排序的序列分成若干个子序列,每个子序列都是有序的,然后再将这些有序的子序列合并成一个有序的序列。归并排序的时间复杂度为O(nlogn),是一种...
七大排序算法如下: 交换排序:快速排序quicksort,冒泡排序bubblesort 选择排序:直接选择排序selectionsort,堆排序maxheapsort 插入排序:直接插入排序insertsort,希尔排序shellsort 合并排序:归并排序...
C语言算法之归并排序C语言算法之归并排序C语言算法之归并排序C语言算法之归并排序
十大经典排序算法 ... (2)排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部...常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...
根据算法导论实现的归并排序算法