美文网首页
常见算法和排序

常见算法和排序

作者: APHOME_明 | 来源:发表于2019-02-22 17:08 被阅读0次

冒泡排序原理和实现

    1)算法的概念
    2)时间复杂度和空间复杂度的概念    
    3)常见的排序算法和查找算法


时间复杂度和空间复杂度的概念

    算法评定:
       1)算法分析的目的在于选择合适的算法和改进算法
       2)一个算法的评价主要从时间复杂度和空间复杂度来考虑

    时间复杂度:
       执行算法所需要的计算工作量。一般来说,计算机算法是问题规模n的函数f(n),算法的时间复杂度也因此记做T(n) = Of(n)
    问题的规模n越大,算法执行的时间增长率与f(n)的增长率相关,称作渐进时间复杂度

    时间复杂度计算方式
    O(n^2)、O(1)、O(n)、?
    步骤:
       1)得出算法的计算次数的公式
       2)用常数1来取代所有时间中的左右加法常数.
       3)在修改后的运行次数函数中,只保留最高阶项
       4)如果最高阶存在且不是1,则去除与这个项相乘的常数

    
    举例:
    常数阶:O(1)
    线性阶:O(n)
    平(立)方阶:O(n^2) / O(n^3)
    特殊平方阶:O(n^2/2+n/2)->O(n^2)
    对数阶:O(log2n)
    效率:O(1) > O(log2n) > O(n) > O(nlog2n) > O(n^2) > O(n^3) > O(2^n) > O(n!) > O(n^n)


    时间复杂度其他概念
       最坏情况:最坏的情况时的运行时间,一种保证,如果没有特别说明,说的时间复杂度即为最坏情况的时间复杂度。
       平均情况:期望的运行时间

changj
    空间复杂度
       算法需要消耗的内存空间,记做:S(n) = O(f(n))
       包括程序代码所占用的空间,输入数据所有占用的空间和辅助变量所占用的空间这三个方面
       计算和表示方式与时间复杂度类似,一般用复杂度的渐进性来表示。

    空间复杂度的计算方式
       有时用空间来换取时间
       冒泡排序的元素交换,空间复杂度O(1)


相关文章

  • 数据结构与算法

    常见排序算法 堆排序 算法大全 算法大汇总

  • LeetCode大全

    1.常见排序算法: 常见的排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序、...

  • 排序算法

    常见的排序算法 常见的排序算法有:插入、希尔、选择、冒泡、归并、快速、堆排序。。。 插入排序 算法步骤一、从数组的...

  • 经典算法---排序(摘抄)

    一、排序算法 前言:常见排序算法分类 非线性时间比较类排序:交换类排序(快速排序和冒泡排序)、插入类排序(简单插入...

  • Python知识点:常见算法的python实现

    提到排序算法,常见的有如下几种:冒泡排序、选择排序、插入排序、快速排序、堆排序、归并排序、希尔排序;查找算法最常见...

  • 编程算法之排序和查找算法

    查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。 一. 排序 常见...

  • PHP常用算法

    基于选择的排序算法 常见的基于选择的排序算法有:冒泡排序、插入排序、选择排序、归并排序和快速排序,我们在选在排序算...

  • 排序算法(四) 希尔排序(插入排序的进化)

    参考Java排序算法(四):希尔排序常见排序算法 - 希尔排序 (Shell Sort) 希尔排序算法是按其设计者...

  • Swift - 常用的排序算法

    常见的排序算法 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很...

  • Rust数据结构——排序算法(一)

    Rust数据结构——排序算法(一) 0x01 常见的排序算法 排序算法是数据结构中很常见的算法。如果你了解过数据结...

网友评论

      本文标题:常见算法和排序

      本文链接:https://www.haomeiwen.com/subject/nyneyqtx.html