算法的时间复杂度?

大神求解

时间复杂度的表示: O(执行次数)

一个有序的元素列表查找某个元素可以用二分查找,每次取中间元素进行比较大小,直到相等。因为每次不符合时总会排除一半的元素 ,所以查找的次数为log2n,那么时间复杂度为O(log2n)。如果是一个无序的元素列表,查找从位置0开始,那么简单查找的次数为n,那么时间复杂度为O(n)。

除此之外快速排序为O(n*log2n),选择排序为O(n*n)。

旅行算法就是n个旅行地点,你可从某个地方出发到余下某下一个地点,走完所有地点。从最开始时走有n个地点可以选择,接下来再走就有n-1个地点可以选择,这样直到只有一个地点可以选择。那么所有你可走的路径就是一个阶乘,选择复杂度为O( n!)。

关于数组和链表的操作。先说数组,因为你有了元素的索引,可以随机访问,你就能快速找到这个元素,而且所有元素的读取都是一样的步骤,所以读取时间复杂度为O(1),数组的插入和删除的时间复杂度为O(n),因为要移动元素。链表的特性是每个都存储了下一个元素的地址,只能顺序访问。那么读取插入删除的时间复杂度分别是O(n)、O(1)、O(1)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-06