0

By coding algorithm and using some liberal prints with small set of data, you can learn to understand the basic algorithms better than just reading about them.

Here simple selection sort.

Edited by pyTony: n/a

""" demonstrating simple selection sort with prints"""

data = [64, 25, 12, 25, 22, 11, 62]

for current in range(len(data)-1):
    min_value_index = current
    print('Sorted: %s, Checking: %s' % (data[:current],data[current:]))
    for index, d in enumerate(data[current:], current):
        if data[min_value_index] > d:
            min_value_index = index
    if min_value_index != current:
        data[current], data[min_value_index] = data[min_value_index], data[current]
    else:
        print('No swap needed')

print('\nReady result:')
print(data)

Specialties:
IT/Science/Contracts/Religious translation/interpreting FIN-ENG-FIN
Python programming

1
Contributor
2
Replies
5
Views
6 Years
Discussion Span
Last Post by pyTony
0

OK, if you put one print more you can find a stupid thing I do. Up vote for first one to spot it.

0
""" demonstrating simple selection sort with prints"""

data = [64, 25, 12, 25, 22, 11, 62]

for current in range(len(data)-1):
    min_value_index = current
    print('Sorted: %s, Checking: %s' % (data[:current],data[current:]))
    # min_value_index = current, does not need to check that -> + 1
    for index, d in enumerate(data[current + 1:], current + 1):
        #print(index, min_value_index)
        if data[min_value_index] > d:
            min_value_index = index
    if min_value_index != current:
        data[current], data[min_value_index] = data[min_value_index], data[current]
    else:
        print('No swap needed')

print('\nReady result:')
print(data)
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.