我在选择排序中看到,如果内部等于最小值,它将交换它们。但为什么你这样做? 我刚刚添加了if语句用于交换if $ inner = $ min所以为什么交换它们因为它们是相同的索引!那你为什么这么做?!!
条件是:如果$ inner = $ minimum(不要交换)。否则他们不是euqal(交换)。
这是代码。
\framesubtitle
答案 0 :(得分:0)
没有。时间复杂度并不取决于您所进行的交换次数,而是取决于检查的迭代次数。
让我们举个例子。, 1 4 9 3 0 8 5
您说您将迭代整个数组并找到最低(最小)数字,如果两者不相等,您将与当前索引进行交换。
这意味着,
您的排序数组:0 4 9 3 1 8 5
但它没有排序。这意味着它仅排序到第0个[第一个数字]索引。
你必须从第二个索引重复它。
现在,让我们找出实际的时间复杂度。
当你为每个索引进行迭代时(让我们采用' i'),对于外循环它是O(N)并且你将从i + 1迭代内循环(让我们把它作为内部循环的O(N)。
因此O(N)* O(N)= O(N ^ 2)
如果你仍然有任何疑问,让我们采取j的迭代,
对于i = 0,j从1开始重复 - > Ñ
对于i = 1,j从2 - >迭代; Ñ
对于i = 2,j从3 - >迭代; N等等......
so =(N-1)+(N-2)+(N-3)+(N-4)...... + 1
=> (N(N-1))/ 2
= O(N ^ 2)