Bubblesort - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Homework (https://python-forum.io/forum-9.html) +--- Thread: Bubblesort (/thread-4386.html) |
Bubblesort - Augustin1340 - Aug-12-2017 I would like to sort several points from smallest to biggest however. I will wish to get this result: However, my ranking seems to be reversed for now :-( I think my problem is my function Bubblesort ? def Bubblesort(name, goal1, point): swap = True while swap: swap = False for i in range(len(name)-1): if point[i+1] > point[i]: goal1[i], goal1[i+1] = goal1[i+1], goal1[i] name[i], name[i+1] = name[i+1], name[i] point[i], point[i + 1] = point[i + 1], point[i] swap = True return name, goal1, point def ranking(name, point): for i in range(len(name)): print(name[i], "\t" , point[i], " \t ") name = ["Henry", "Owen", "Drogba"] point = [0]*3 goal1 = [68, 52, 46] gain = [6,4,2] name, goal1, point = Bubblesort( name, goal1, point ) for i in range(len(name)): point[i] += gain[i] ranking (name, point) RE: Bubblesort - ichabod801 - Aug-12-2017 Please don't paste pictures, use text with output tags. Your bubblesort function is sorting by points (line 6), which is all zeros. So the if condition is never True, and nothing ever gets moved. RE: Bubblesort - nilamo - Aug-12-2017 For reference, here's the original thread: https://python-forum.io/Thread-How-add-2-arrays I'm not merging, since this is explicitly about sorting, while the other was more... general. |