Why is bubble sort O(n^2)?

后端 未结 6 1394
庸人自扰
庸人自扰 2020-12-03 10:47
for (int front = 1; front < intArray.length; front++)
{
    for (int i = 0; i  < intArray.length - front; i++)
    {
        if (intArray[i] > intArray[i +          


        
6条回答
  •  一个人的身影
    2020-12-03 11:24

    k=1(sigma k)n = n(n+1)/2
    because:
      s = 1 +  2    + ... + (n-1) + n
      s = n + (n-1) + ... + 2     + 1
    +)
    ===================================
      2s = n*(n+1)
       s = n(n+1)/2
    in bubble sort, 
    (n-1) + (n-2) + ... + 1 + 0 times compares 
    which means, k=0(sigma k)n-1
    , k=0(sigma k)n-1 equals [k=1(sigma k)n] - n
    therefore, n(n+1)/2 - n = n(n-1)/2
    which is 1/2(n^2-n) => O(1/2(n^2-n))
    in big O notation, we remove constant, so
    O(n^2-n)
    n^2 is larger than n
    O(n^2)
    

提交回复
热议问题