如何解决代码的Big-O复杂度是多少?
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
j=j*2;
}
}
我无法一概而论。
解决方法
如果我们计算程序执行的乘法次数,则复杂度将为from tkinter import *
from currency_converter import CurrencyConverter
global c
c = CurrencyConverter()
#test converter
# result = c.convert(100,'USD','HKD')
# print(result)
#create window
root = Tk()
root.title("EZ Currency Converter")
root.geometry("350x200")
#create currency option list
currencies = ["USD","EUR","JPY","GBP","AUD","CAD","CHF","HKD","SGD","MXN","SEK","PHP","RUB","HUF","LTL","MTL","PLN","ROL","SIT","SKK",]
def conversion(clicked,second_clicked,currency_amount):
result= c(currency_amount,clicked,second_clicked)
final_conversion = Label(root,text= result)
final_conversion.grid(row=4,column=1,columnspan=2)
#Set what kind of variable to expect
clicked = StringVar()
clicked.set("USD")
second_clicked= StringVar()
second_clicked.set("USD")
#welcome new users
welcome = Label(root,text="Welcome to your new favorite Currency Converter")
#create the dropdown options/ input box / button
original =OptionMenu(root,*currencies)
converted =OptionMenu(root,*currencies)
currency_amount= Entry(root,width=30)
convert = Button(root,text="Convert",padx=10,pady=10,command=lambda:conversion(clicked.get(),second_clicked.get(),currency_amount.get()))
#place widgets
welcome.grid(row=0,columnspan=2)
original.grid(row=1,column= 1,columnspan=1)
converted.grid(row=1,column=2,columnspan=1)
currency_amount.grid(row=2,columnspan=2)
convert.grid(row=3,columnspan=2)
root.mainloop()
您将n * log2(n)
乘以内部循环(n
随i
缩放),并且内部循环会重复n
。 j <= n
呈指数增长
j
这是1,3,7,15,31,63,127,... = (2^n) - 1
的缩放比例,因此,将2^n
的值加倍会使内部循环再次迭代。
n
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。