user1589244 user1589244 - 4 months ago 70
Python Question

python: order a list of numbers without built-in sort, min, max function

If I have a list that varies in length each time and I want to sort it from lowest to highest, how would I do that?

If I have:

[-5, -23, 5, 0, 23, -6, 23, 67]


I want:
[-23, -6, -5, 0, 5, 23, 23, 67]


I start with this:

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]

new_list = []

minimum = data_list[0] # arbitrary number in list

for x in data_list:
if x < minimum:
minimum = value
new_list.append(i)


BUT this only goes through once and I get:

new_list = [-23]


This is where I get stuck.

How do I keep looping through until the
len(new_list) = len(data_list)
(i.e. all the numbers are in the new list) with everything sorted without using the built in max, min, sort functions? I'm not sure if it's necessary to create a new list either.

Answer

I guess you are trying to do something like this:

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
new_list = []

while data_list:
    minimum = data_list[0]  # arbitrary number in list 
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)    

print new_list
Comments