归并排序与插入排序-C++实现
来源:互联网 发布:c51单片机计算器 编辑:程序博客网 时间:2024/06/04 19:18
极限值的头文件#include <limits.h>
归并排序
void merge(int *aList,int l,int m,int h){ int n1 = m-l+1; int n2 = h-m; int *left = new int[n1+1]; int *right = new int[n2+1]; int i,j,k; for(i= 0;i<n1;++i) { left[i]=aList[l+i]; } for (j= 0;j<n2;++j) { right[j]=aList[m+1+j]; } left[n1] = INT_MAX; right[n2] = INT_MAX; for (i=0,j=0,k=l;k<=h;++k) { if (left[i]<=right[j]) { aList[k] = left[i]; ++i; } else { aList[k] = right[j]; ++j; } } delete left; delete right;}void merge_sort(int *alist,int left,int right){ if (right>left) { int mid= (right+left)/2; merge_sort(alist,left,mid); merge_sort(alist,mid+1,right); merge(alist,left,mid,right); }}
插入排序
void insert_sort(int *alist,int count){ for (int j=1;j<count;++j) { int key = alist[j]; int i=j-1; for (;i>=0&&alist[i]>key;--i) { alist[i+1] = alist[i]; } alist[i+1]=key; }}
推荐阅读:http://blog.csdn.net/left_la/article/details/8656953
0 0
- 归并排序与插入排序-C++实现
- 【WEB】JS实现选择排序,插入排序与归并排序
- 插入排序与归并排序
- 插入排序与归并排序
- 插入排序与归并排序
- 单链表排序(插入与归并)
- 分析插入与归并排序
- 插入排序和归并排序实现
- 关于插入排序与归并排序
- 插入排序与归并排序及优化
- 深度解析插入排序与归并排序
- c语言简单实现 冒泡,插入,选择,归并排序
- 插入,归并,快速,冒泡,shell,选择排序 用c实现
- 插入排序、归并排序
- 插入排序,归并排序
- 插入排序&归并排序
- 插入排序&&归并排序
- 选择排序、插入排序、希尔排序与归并排序
- Java虚拟机的内存区域——《深入理解Java虚拟机》学习笔记(一)
- android详解博客
- LeetCode-Minimum Depth of Binary Tree
- string的相关操作
- LayoutInflater的使用
- 归并排序与插入排序-C++实现
- Servlet的线程安全
- 写一本书和找一本书
- 【LeecCode】Implement strStr()
- Android学习笔记二:第一个应用程序的深入说明
- Design Mode -- 设计模式学习系列丛书推荐
- 使用jprobe构建镜像协议栈的原理与感悟
- gzip原理与实现
- JQuery_JavaScript___call、apply、arguments的使用解释