首页学历类考试大学计算机科学
(简答题)

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

正确答案

分析算法,第一次调用Reverse函数的时间复杂度为O(k),第二次调用Reverse函数的时间复杂度为O(n-k),第三次调用Reverse函数的时间复杂度为O(n),所以,总的时间复杂度为O(n)。

答案解析

相似试题

  • (简答题)

    给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素,请设计一个最坏时间复杂度为O(n)的算法,并对其时间复杂度进行分析说明。

    答案解析

  • (简答题)

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

    答案解析

  • (简答题)

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

    答案解析

  • (简答题)

    设顺序栈S中有2n个元素,从栈顶到栈底的元素依次为a2n,a2n-1,…,a1,要求通过一个循环队列重新排列栈中元素,使得从栈顶到栈底的元素依次为a2n,a2n-2,…,a2,a2n-1,a2n-3,…,a1,请设计算法实现该操作,要求空间复杂度和时间复杂度均为O(n)。

    答案解析

  • (填空题)

    使用二分搜索算法在n个有序元素表中搜索一个特定元素,在最佳情况下,搜索的时间复杂性为O(),在最坏情况下,搜索的时间复杂性为O()。

    答案解析

  • (单选题)

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

    答案解析

  • (填空题)

    排序的平均时间复杂度为O(n•logn)的算法是(),为O(n•n)的算法是()

    答案解析

  • (简答题)

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

    答案解析

  • (判断题)

    直接选择排序算法在最好情况下的时间复杂度为O(n)。

    答案解析

快考试在线搜题