Q. Write a code that reduces number of comparisons in above code while creating sequence B.

 

Answer =

 

A = eval(input("Enter a list :- "))
user = input("Enter order you want (Asc/Dsc):- ")
B = [ ]
length = len(A)

for i in range(1,length):
    temp = A[i]
    j = i-1
    if user == "Asc" or user == "asc" :
        while j>=0 and temp < A[ j ]:
            A[ j+1] = A[j]
            j = j -1
        else :
            A[ j+1] = temp
    elif user == "Dsc" or user == "Dsc" :
        while j>=0 and temp > A[ j ]:
            A[ j+1] = A[j]
            j = j -1
        else :
            A[ j+1] = temp

for i in A :
    B += [ i ]

print(B)


Output :-

Enter a list :- [2,1,8,7,6,4,3,9,5]
Enter order you want (Asc/Dsc):- asc
[1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> 

Enter a list :- [2,1,8,7,6,4,3,9,5]
Enter order you want (Asc/Dsc):- Dsc
[9, 8, 7, 6, 5, 4, 3, 2, 1]

>>> 

Enter a list :- [7,8,6,4,2,9,5,1,3,4,7,8,9,5,6,4,1,2,3]
Enter order you want (Asc/Dsc):- Asc
[1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9]

>>>

Post a Comment

You can help us by Clicking on ads. ^_^
Please do not send spam comment : )

Previous Post Next Post