首页 > 编程语言 >0_算法的概念以及算法计时

0_算法的概念以及算法计时

时间:2023-02-01 16:35:55浏览次数:44  
标签:数列 Ts 概念 算法 计时 排序 Tc 数字

  算法就是计算或解决问题的步骤,算法的运行时间使用解决某个问题使用的“步数”,1步就是计算的基本单位。

  作为示例,现在我们试着从理论层面求出选择排序的运行时间。选择排序的步骤如下。

  ① 从数列中寻找最小值   ② 将最小值和数列最左边的数字进行交换,排序结束。回到①   如果数列中有 n 个数字,那么①中“寻找最小值”的步骤只需确认 n 个数字即可。这里,将“确认 1 个数字的大小”作为操作的基本单位,需要的时间设为 Tc,那么步骤①的运行时间就是n×Tc。接下来,把“对两个数字进行交换”也作为操作的基本单位,需要的时间设为 Ts。那么,①和②总共重复 n 次,每经过“1 轮”,需要查找的数字就减少 1 个,因此总的运行时间如下。   ( n×Tc+ Ts)+(( n-1)×Tc+ Ts)+(( n-2)×Tc+ Ts)+…+(2×Tc+ Ts)+(1×Tc+ Ts)   =1/2 Tcn ( n+1)+ Tsn   =1/2 Tcn 2 +( 1/ 2 Tc+ Ts) n      虽说已经求得了运行时间,但其实这个结果还可以简化。Tc 和 Ts 都是基本单位,与输入无关。会根据输入变化而变化的只有数列的长度 n,所以接下来考虑 n 变大的情况。n 越大,上式中的 n2 也就越大,其他部分就相对变小了。也就是说,对式子影响最大的是 n2 。删掉其他部分,将结果表示成下式右边的形式。   1/2Tcn 2 +( 1/ 2 Tc+ Ts) n= O (n 2 )   通过这种表示方法,就能大致了解到排序算法的运行时间与输入数据量 n 的平方成正比。

标签:数列,Ts,概念,算法,计时,排序,Tc,数字
From: https://www.cnblogs.com/okmai77xue/p/17082063.html

相关文章

  • 随堂笔记3-spring之底层架构核心概念解析
    1.BeanDefinition:bean定义,有一些特定属性描述bean,比如bean类型-class,scope作用域,lazyInit是否懒加载2.beanDefinitionReader:beanDefinition读取器,比如AnnotationBeanDe......
  • 视频基础概念-RGB表示图像-迅为i.MX8MM开发板
    一张图像是由每个像素点绘成的,那么一像素点的RGB又该如何表示呢?浮点表示归一化表示,取值范围0.0~1.0,如openGL对每个子像素点的表示方式。整数表示取值范围0~255或者00......
  • 剑指offer——Day18 搜索与回溯算法(中等)
    Day182023.1.31搜索与回溯算法(中等)剑指offer55-Ⅰ.二叉树的深度自己实现这个题就是纯纯简单的DFS,当然用BFS也可以做,这里使用的是DFS代码如下:/***Definition......
  • 广度优先搜索算法 BFS 实战 All In One
    广度优先搜索算法BFS实战AllInOneBreadth-FirstSearch/BFSBFS/广度优先搜索/广度优先遍历/按层次遍历树demosLeetCode"usestrict";/****......
  • 接口的概念和接口文档
    使用Ajax请求数据时,被请求的URL地址,就叫做数据接口(简称接口)。同时,每个接口必须有请求方式。  接口文档,顾名思义就是接口的说明文档,它是我们调用接口的依据。好......
  • JavaScript闭包的概念
    什么是闭包?闭包有什么作用,缺点是什么?闭包的概念:JavaScript中函数会产生闭包(closure)。闭包是函数本身和该函数声明时所处的环境状态的组合;函数能够“记忆住”其定义......
  • 排序算法之希尔排序
    插入排序存在的问题:数组arr={2,3,4,5,6,1},这时需要插入的数是1,那么就要逐个将其他元素往后移,再把1放在首位。当需要插入的数是较小的数时,后移的次数明显增多,对效率很......
  • web相关概念回顾、服务器软件_概述
    web相关概念回顾软件架构:C/S:客户端/服务器端B/S:浏览器/服务器端资源分类:静态资源:所有用户访问相同资源后,得到的结构都是一......
  • 使用dayjs制作倒计时工具
    引入脚本<scriptsrc="https://cdn.bootcdn.net/ajax/libs/dayjs/1.11.7/dayjs.min.js"></script><scriptsrc="https://cdn.bootcdn.net/ajax/libs/dayjs/1.11.7/plug......
  • 代码随想录算法训练营第一天|704.二分查找、27.移除元素
    LeetCode704.二分查找(C++)题目链接:704.二分查找力扣leetCode二分查找算法思路:二分查找需要保证数组为有序数组同时无重复元素,否组无法通过二分查找进行判断(结果无法唯......