查找、排序算法整理

查找算法分类

查找可分为静态查找和动态查找:

静态查找:仅对查找表做查询和检索操作。
动态查找:在查找时包含插入、删除或修改。

还可分为无序查找和有序查找:

无序查找:被查找数列有序无序均可。
有序查找:被查找数列必须为有序数列。典型的有二分查找、插值查找、斐波那契查找

排序算法分类

排序包括内部排序和外部排序:

内部排序:整个排序过程不需要访问外存即可完成。
外部排序:若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。

内部排序包括:

插入排序:包括直接插入排序、希尔排序(缩小增量排序)
选择排序:包括简单选择排序、堆排序
交换排序:包括冒泡排序、快速排序
归并排序
基数排序

外部排序包括:

多路归并排序(最常用):即将原文件分解成多个能够一次性装入内存的部分,分别把每一部分调入内存完成排序。然后,对已经排序的子文件进行归并排序。
外分配排序:其原理类似于内排序中的桶排序。在归并排序和桶排序之间存在数学上的某种对偶性。
此外还有一些不耗费附加磁盘空间的原地排序算法。不再过多介绍。

查找和排序总结

以下图片源自:https://blog.csdn.net/u011552404/article/details/78973058

查找算法

对于查找算法,采用平均查找长度作为衡量标准。

平均查找长度(Average Search Length,ASL):需和指定key进行比较的关键字的个数的期望值,称为查找算法在查找成功时的平均查找长度。

对于含有n个数据元素的查找表,查找成功的平均查找长度为:ASL = Pi*Ci的和。其中:   
  Pi:查找表中第i个数据元素的概率。
  Ci:找到第i个数据元素时已经比较过的次数。

在这里插入图片描述
附超全的查找算法详细介绍:https://blog.csdn.net/sayhello_world/article/details/77200009

排序算法

对于排序算法,采用时间和空间复杂度作为评价标准。
在这里插入图片描述
附排序算法详细介绍:https://blog.csdn.net/hguisu/article/details/7776068

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值