发布网友 发布时间:2022-04-20 11:52
共3个回答
懂视网 时间:2022-04-20 16:14
算法的时间复杂度取决于待处理数据的状态以及问题的规模。算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。
算法(Algorithm)是指解题方而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
热心网友 时间:2022-04-20 13:22
确定的一种算法,对不同的数据集所消耗的时间是不同的,如果初始的数据有一定的特性或规律,可以减少操作的次数,消耗较少的时间。
以冒泡发排序为例,交数组中相邻两个数是基本操作。在极端状态下,如果初始的数据就是按从小到大的顺序排列好的,那么执行基本操作的次数为0,如果初始数据按从大到小的顺序排列,执行基本操作的次数就是n*(n-1)/2。
这样解释是你想问的吗
热心网友 时间:2022-04-20 14:40
从定义上看,用算法中操作执行的次数计算时间复杂度,当然初态不同,执行的次数就不同,所以说与初态有关。
但是,普遍接受的定义是:算法的复杂度是最坏情况(执行次数最多的情况)下按执行次数计算的,如我们说冒泡算法的时间复杂度是O(N2),而不是说你先给我数据和数据的初态再说算法的时间复杂度。这时候,就与初态无关了。(说明:论文中说算法复杂度一定是这种,国际公认)
具体哪个题目吗,考试绝不能出这样的题目。