我有一个无序的n项目列表,我正在试图找到该列表中最常见的项目。我编写了以下代码:
def findFrequant(L):
count = int()
half = len(L)//2
for i in L:
for j in L:
if i == j:
count += 1
if count > half:
msg = "The majority vote is {0}&
如果给定一个函数sorted,如果列表以O(N)的形式运行,该函数将返回True,您将如何描述这种排序的运行时间:
def sort(l):
while not sorted(l): random.shuffle(l)
假设洗牌是完全随机的。
这会用big-O符号来写吗?或者,有没有其他方法来对随机成分的算法进行分类?
我想知道如何确定用伪代码编写的算法的运行时间,以便我能够熟悉运行时间。例如,如何知道比较两个数组以确定它们是否相同的算法的运行时间?
数组1= 1,5,3,2,10,12数组2= 3,2,1,5,10,12,因此这两个数组不同,因为它们的排序不同。
我的伪代码是:
1)将当前指针设置为第一个数组中的第一个数字
2)将第二个指针设置为第二个数组中的第一个数字
3) while (当前指针!=“")与其他数组中相同位置的元素进行比较
4) if (current pointer == second pointer)
move current pointer to next number
假设我们有一个递归函数,它只在随机生成的参数满足某些条件时终止:
例如:
{
define (some-recursive-function)
x = (random in range of 1 to 100000);
if (x == 10)
{
return "this function has terminated";
}
else
{
(some-recursive-function)
}
}
我明白,对于无限循环,不会有复杂的定义。如果某些功能肯定会终止,但在未知的时间之后呢?
假设您有一个方法isSubstring,它检查一个单词是否是另一个单词的子字符串。给定两个字符串,s1和s2,编写代码来检查s2是否是s1的旋转,只使用对isSubstring的一个调用
(例如,“水瓶”是“erbottlewat”的一种旋转)
下面是我的代码:
public class IsRotation1_8 {
/*
* Idea: Same idea as the code in CC150 book
* First, if the s2 is a rotation of s1, they should have the same length
from time import process_time_ns
def initial_hash(desired):
u=0
for i in desired:
u=(u*256+ord(i))%89
return u
def find(Document):
initial=Document[:len(desired)]
hash_1=initial_hash(initial)
for i in range(1,len(Document)-len(desired)+1):
hash_1=skip(Documen
我在这个练习中遇到了麻烦,如何用Python编写它,并获得时间复杂性?应该使用while循环吗?
编写一个返回数组A[1 . . . n]中最小值的算法。使用while循环。算法的时间复杂度是多少?
list1 = []
num = int(input("Enter number of elements in list: "))
for i in range(1, num + 1):
ele = int(input("Enter elements: "))
list1.append(ele)
print("Smal