Lowest price ever! Learn Generative AI for 48% less!
Get my discount+ 4
Sorting question
def sort(A): count=0 for i in range(len(A)): for j in range(i): if A[j]>A[j+1]: temp=A[j] A[j]=A[j+1] A[j+1]=A[j] A[j+1]=temp count+=1 break if count==0: print("yes") else: ("no") A=[3,2,1,4] sort(A) print(A) if count==0: print("yes") else: ("no") Question is i want to sort the given number but first i want to check elements are sorted or not if not then swap but the elements but swap only 1 time if elements taking 2 or more swaps then simply print no. I share my code but my code is giving me error on count is not defined i don't why.
14 Answers
+ 4
count is a local variable of your function.
+ 3
Akash Gupta , my goal was only to show you how to eliminate the error with the variable count.
The other part of your question I do not understand yet at all.
+ 3
Akash Gupta
There is an error in your bubble sort implementation.
It fails on completely reversed list.
Also, you can do in place swapping, no need for a temp variable.
Also, why not just print the count and the check from inside the function? No need for globals and additional print statements.
Korkunç TheTerrible , the reason for the nested for loop is that the process have to go over the list multiple times.
Here is a RealPython link:
https://realpython.com/sorting-algorithms-JUMP_LINK__&&__python__&&__JUMP_LINK/
https://code.sololearn.com/cu5XFteHSHUS/?ref=app
+ 2
Akash Gupta This is exactly what JaScript is trying to say?
+ 2
Lisa if i do something wrong you can tell me?
+ 2
JaScript
def sort(A):
global count
count = 0
for i in range(len(A)):
for j in range(i):
if A[j]>A[j+1]:
temp=A[j]
A[j]=A[j+1]
A[j+1]=A[j]
A[j+1]=temp
count+=1
break
if count==1:
print("yes")
else:
("no")
A=[3,1,2,4]
print(A)
sort(A)
print(count)
print("no")
Actually I don't remember to remove if statement after i call the function now that's the actual code you want to swap only 1 time if elements takes 2 or more than print no if it taking 1 swap than print yes
+ 2
Ah yes now it works thanks to Lisa .
+ 1
JaScript yes but when i declared outside the function it giving me error of unboundlocalerror : local variable count referenced before assessment.
+ 1
The print() in the else-part in the function is missing?
+ 1
Lisa Hi, Lisa. Can you help me understand why the second loop with j needs to be introduced in this code? Looking at it, I thought list had items that were lists themselves (is it called an array?).
Then looking down I saw that A was a list. Why is this not coded as [A]i but instead as [A]j?
+ 1
JaScript it's a codeshef problem bro you can search if you want to pseudo sorting codeshef problem in Google
+ 1
JaScript okay np
+ 1
Hello I'm new here. And I really want to learn a lot of code who can help me (thank you so much))
0
Hy