博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
归并分类
阅读量:7093 次
发布时间:2019-06-28

本文共 562 字,大约阅读时间需要 1 分钟。

基本方法:

  给定一个含有n个元素(又叫关键字)的集合,如果要把它们按一定的次序分类(本节中自始至终假定按非递减分类),最直接的方法就是插入法。对A(1:n)中元素作插入分类的基本思想是:for(j=2;n;++j){将A[j]放到已分类集合A[1:j-1]的正确位置上};从中可以看出,为了插入A(j),有可能移动A(1:j-1)中的所有元素,因此可以预计该算法在时间特性上不会太好,算法具体描述如下:

void InsertionSort(elemType a[],int n) {//将A(l:n)中的元素按非递减分类。n≥1int i;for(j=2;n;++j) { //A(l:j-l)已分类。a[0]=a[j];i = j - 1;while (a[0]

 

while循环中的语句可能执行0~j次(j=2,3,…,n),因此,这函数过程的最坏情况限界是:

Σj=(n(n+1)/2)-l=Θ(n2)
2≤j≤n
如果输入数据本来就是按非递减排列的,则根本不会进入while的循环体,这就是最好情况,计算时间是Ω(n)。

 

归并分类

void MergeSort(int low,int high) {//A(low:high)是一个全局数组,它有high-low+l≥0个待分类元素。int mid;if(low

 

 

 

转载地址:http://ajiql.baihongyu.com/

你可能感兴趣的文章
JavaScript之number类型的数值转换成某某进制
查看>>
iptables从入门到放弃
查看>>
PHP函数中默认参数的的写法
查看>>
Linux TCP/IP网络管理工具:net-tools VS iproute2
查看>>
linux
查看>>
CentOS6.5+Puppet3.7.3 安装、配置及测试
查看>>
grep、egrep及相应的正则表达式和用法
查看>>
Oracle修改数据文件名/移动数据文件
查看>>
Oracle内部错误:ORA-00600[17175]一例
查看>>
GATHER_STATS_JOB: Stopped by Scheduler. Consider increasing the maintenance window duration if this
查看>>
linux和windows下的clock函数
查看>>
seq命令
查看>>
JsonUtils 工具类
查看>>
shell 编写脚本批量ping ip
查看>>
MySQL5.6在线表结构变更(online ddl)总结
查看>>
人人都能学编程
查看>>
redis3.0.0 集群安装详细步骤
查看>>
31 天重构学习笔记22. 分解方法
查看>>
java:“泛型”的前世今生
查看>>
centos7修改字符集
查看>>