计算此解决方案的时间复杂度
calculate time complexity for this solution
我有以下代码。我认为该解决方案具有 O(n^2) 因为根据所附图像它是一个嵌套循环。谁能确认一下?
function sortSmallestToLargest(data):
sorted_data={}
while data is not empty:
smallest_data=data[0]
foreach i in data:
if (i < smallest_data):
smallest_data= i
sorted_data.add(smallest_data)
data.remove(smallest_data)
return sorted_data
reference image
好的,现在我知道你在做什么了!是的,你是对的,它是 O(n²)
,因为你总是在遍历数据的每个元素。您的数据将在每个循环中减少一个,但是由于 O 复杂度我们不关心常量,我们可以说它是 O(n) for each loop
。相乘(因为一个在另一个里面)我们有 O(n²)
.
我有以下代码。我认为该解决方案具有 O(n^2) 因为根据所附图像它是一个嵌套循环。谁能确认一下?
function sortSmallestToLargest(data):
sorted_data={}
while data is not empty:
smallest_data=data[0]
foreach i in data:
if (i < smallest_data):
smallest_data= i
sorted_data.add(smallest_data)
data.remove(smallest_data)
return sorted_data
reference image
好的,现在我知道你在做什么了!是的,你是对的,它是 O(n²)
,因为你总是在遍历数据的每个元素。您的数据将在每个循环中减少一个,但是由于 O 复杂度我们不关心常量,我们可以说它是 O(n) for each loop
。相乘(因为一个在另一个里面)我们有 O(n²)
.