Sorting 如何计算选择排序的时间复杂度
使用伪代码进行选择排序(最坏情况)的时间复杂度:Sorting 如何计算选择排序的时间复杂度,sorting,selection,Sorting,Selection,使用伪代码进行选择排序(最坏情况)的时间复杂度: 'Selection-Sort(A) 1 For j = 1 to (A.length - 1) 2 i = j 3 small = i 4 While i < A.length 5 if A[i] < A[small] 6 small = i 7 i = i + 1 8 swap A[small], A[j] ”选择-排序(A) 1表示j=1至(A.长度-1) 2 i=j
'Selection-Sort(A)
1 For j = 1 to (A.length - 1)
2 i = j
3 small = i
4 While i < A.length
5 if A[i] < A[small]
6 small = i
7 i = i + 1
8 swap A[small], A[j]
”选择-排序(A)
1表示j=1至(A.长度-1)
2 i=j
3小=i
4而我
第一步将发生n-1次(n是数组的长度)。第二个和第三个。我被困在第四步是否会发生n!该算法的基本操作是在内部循环的第5行进行比较。两个循环都被执行≈ n次,即基本操作执行n*n次≈ n^2 选择排序的时间复杂度为O(n^2)。最坏、最好和一般情况也是如此 你应该看看下面的链接,它提供了一个关于选择排序的详细说明。 希望这有帮助 编辑: 在分析非递归算法的时间复杂度时
- 决定指示输入大小的参数
- 确定基本操作
- 设置一个总和,指示执行基本操作的次数
- 建立其增长秩序
- 给出一个渐近估计
在您附加的链接中,案例被添加而不是相乘(而循环(n+1)(n/2))。你能解释一下原因吗?