how to calculate Bubble sort Time Complexity

前端 未结 7 1251
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-05 12:29

I was trying to understand the Data Structure and different algorithm, then i got confused to measure the Bubble sort time complexity.

for (c = 0; c < ( n         


        
7条回答
  •  既然无缘
    2020-12-05 12:49

    Explaining for worst case here :

    elements = raw_input("enter comma separated elements : ")
    elements = elements.split(',')
    elements = map(int, elements)
    length = len(elements)
    
    for i in xrange(length - 1):
        print "outer pass : ", i
       for j in xrange(length - i - 1):
           print "inner pass : ", j
           if elements[j] > elements[j + 1]:
               elements[j + 1], elements[j] = elements[j], elements[j + 1]
           print "elements : ", elements
    print elements
    

    Output :

    enter comma separated elements : 5,4,3,2,1

    outer pass : 0

    inner pass : 0

    elements : [4, 5, 3, 2, 1]

    inner pass : 1

    elements : [4, 3, 5, 2, 1]

    inner pass : 2

    elements : [4, 3, 2, 5, 1]

    inner pass : 3

    elements : [4, 3, 2, 1, 5]

    outer pass : 1

    inner pass : 0

    elements : [3, 4, 2, 1, 5]

    inner pass : 1

    elements : [3, 2, 4, 1, 5]

    inner pass : 2

    elements : [3, 2, 1, 4, 5]

    outer pass : 2

    inner pass : 0

    elements : [2, 3, 1, 4, 5]

    inner pass : 1

    elements : [2, 1, 3, 4, 5]

    outer pass : 3

    inner pass : 0

    elements : [1, 2, 3, 4, 5]

    [1, 2, 3, 4, 5]

    Thus first iteration all n elements are scanned, it would scan n - 1 elements in the next iteration. So on for all the elements.

    n + n - 1 + n - 2 ... + 1 = (n * (n + 1))/2 = O(n^2)

提交回复
热议问题