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
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)