001排序算法介绍

O:本文大致介绍

阅读下面这篇文章你可以有如下收获:

一、排序算法介绍

1、基本介绍

1、排序算法介绍
排序算法(Sort Algorithm),排序是将一组数据,依据指定的顺序进行排序的过程。

2、排序算法分类

  • 内部排序:指将需要处理的数据都加载到内存中进行排序

  • 外部排序:数据量过大,无法全部加载到内存中,需要借助外存进行排序。

  • 常见的排序有:

    • 插入排序:直接插入排序和希尔排序
    • 选择排序:简单选择排序和堆排序
    • 交换排序:冒泡排序和快速排序
    • 归并排序
    • 基数排序

2、算法的时间复杂度

度量一个程序执行的两种方法。

1、事后排序的方法
这种方法可行,但是有两个问题,一是相对于设计的算法的运行性能进行评测,需要实际运行该程序,二是所得时间的统计量依赖于计算机的硬件,软件等环境因素,这种方式,需要在同一台计算机的相同状态下运行,才能比较那个算法速度快。

2、事前估算法
通过分析某一个算法的时间复杂度来判断哪个算法更优。

二、时间复杂度具体介绍

1、时间频度

  • 时间频度:一个算法话费的时间与算法中语句的执行次数成正比,哪个算法中语句执行的次数多,它花费的时间就多。—>一份算法中的语句执行次数称为语句频度或时间频度,记成T(n)。

  • 例子:
    在这里插入图片描述

(1)时间频度—忽略常数项

在这里插入图片描述

(2)时间频度—忽略低次项

在这里插入图片描述

(3)时间频度—忽略系数项

在这里插入图片描述

2、时间复杂度

  • 一般情况下,算法中的基本操作语句的重复次数是问题规模n的某个函数,用T(n)表示,若某个辅助函数f(n)使得当n趋势于无穷大时,T(n)/ f(n)的极限为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)= O(f(n)),称O(f(n))为算法的渐进时间复杂度,简称为时间复杂度。

  • T(n)不同,但时间复杂度可能相同。如:T(n) = n^2 + 7n + 6 与T(n) = 3n^2 + 2n +2它们时间复杂度T(n)不同,但是时间复杂度相同。

  • 计算时间复杂度的放法。

    • 用常数1代替运行时间中的所有加法常数 如:T(n) = n^2 + 7n + 6 —>T(n) = n^2 + 7n + 1
    • 修改后的运行次数函数中,只保留最高阶级 如:T(n) = n^2 + 7n + 1 —> T(n) = 3n^2
    • 去除最高级的系数。 T(n) = 3n^2 —>T(n) = O(n^2)

3、常见的时间复杂度

  • 常数阶级O(1)

  • 对数阶级O(log2n)

  • 线性阶级O(n)

  • 线性对数阶级O(nlog2n)

  • 平方阶级O(n^2)

  • 立方阶级O(n^3)

  • k次方阶O(n^k)

  • 指数阶级O(2^n)

    • 常见的算法时间复杂度由小到大:上面顺序依次下来,随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率也变低。
    • 尽量避免指数阶级的算法。

(1)常数阶级O(1)

在这里插入图片描述

(2)对数阶级O(log2n)

在这里插入图片描述

(3)线性阶级O(n)

在这里插入图片描述

(4)线性对数阶O(nlogN)

在这里插入图片描述

(5)平方阶级O(n^2)

(6)立方阶级O(n^3)

在这里插入图片描述

三、常见算法的平均时间复杂度和最坏时间复杂度

1、平均时间和最坏情况介绍

在这里插入图片描述

2、常见算法的最后和平均

在这里插入图片描述
从上可以看:基数排序是比基数前面几个是更好的。

四、算法的空间复杂度

1、归并排序大致介绍

因为我们平时开发也是关心的是时间复杂度,现在硬件更新比较快,基本对我们生活不影响,关心的是运行时间的多少,基本不关心的是时间,越快越好。
在这里插入图片描述

五、接下来可以看下面的文章

1、冒泡排序
2、选择排序

四、具体的还有主页有具体的分文章介绍,这里就不一一罗列出来了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值