首页 > 试题广场 >

设a数组的长度为N,那么下面程序循环内交换数组元素的代码执行

[单选题]
设a数组的长度为N,那么下面程序循环内交换数组元素的代码执行的时间复杂度最坏为?
for (int i = N - 1; i > 1; i--)
{
    for (int j = 1; j < i; j++)
    {
        if (a[j] > a[j + 1])
        {
            temp = a[j + 1];
            a[j + 1] = a[j];
            a[j] = temp;
        }
    }
}

  • O(N)
  • O(N平方)
  • O(N立方)
  • O(Nlog2N)
  • O(N平方log2N)
这段程序很明显是选择排序,所以只要记得选择排序最坏时间复杂度即o(n²)
编辑于 2021-06-26 16:50:43 回复(2)