简答题

已知有实现同一功能的两个算法,其时间复杂度分别为O(2n)和O(n10),假设现实计算机可连续运算的时间为107秒(100多天),又每秒可执行基本操作(根据这些操作来估算算法时间复杂度)105次。试问在此条件下,这两个算法可解问题的规模(即n值的范围)各为多少?哪个算法更适宜?请说明理由。

正确答案

2n=1012,n=40
N10=1012,n=16
则对于同样的循环次数n,在这个规模下,第二种算法所花费的代价要大得多。故在这个规模下,第一种算法更适宜。

答案解析

相似试题
  • 已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n。试写一算法将这两个链表连接在一起,假设指针hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成连接运算。请分析你的算法的时间复杂度。

    简答题查看答案

  • 已知数组A[n]中的元素为整型,设计算法将其调整为左右两部分,左边所有元素为奇数,右边所有元素为偶数,并要求算法的时间复杂度为O(n)。

    简答题查看答案

  • 数据结构中评价算法的两个重要指标是算法的时间复杂度和()

    填空题查看答案

  • 已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一高效的算法,删除表中所有值大于mink且小于maxk的元素(若表中存在这样的元素),同时释放被删结点空间,并分析你的算法的时间复杂度(注意,mink和maxk是给定的两个参变量,它们的值可以和表中的元素相同,也可以不同)。

    简答题查看答案

  • 在n个结点的线性表的数组实现中,算法的时间复杂度是O(1)的操作是()。

    单选题查看答案

  • Prim算法利用()策略求解()问题,其时间复杂度是()。

    填空题查看答案

  • 设计一个时间复杂度为O(n)的算法,实现将数组A[n]中所有元素循环右移k个位置。

    简答题查看答案

  • 用动态规划算法解决最大字段和问题,其时间复杂性为()

    单选题查看答案

  • 给定一个由n个数组成的序列,要求该序列的最长单调上升子序列,请设计对应的算法并分析其时间复杂度,如果时间复杂度劣于O(nlogn)的,将其优化为O(nlogn)时间复杂度的算法。

    简答题查看答案