From 02b8e94dccf79bab446a9631dd89a72924b6b619 Mon Sep 17 00:00:00 2001 From: onyx-and-iris Date: Fri, 5 Jan 2024 12:25:49 +0000 Subject: [PATCH] add selection sort --- chapter2/selection.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 chapter2/selection.py diff --git a/chapter2/selection.py b/chapter2/selection.py new file mode 100644 index 0000000..eb20d60 --- /dev/null +++ b/chapter2/selection.py @@ -0,0 +1,31 @@ +import logging +from collections import namedtuple + +logging.basicConfig(level=logging.DEBUG) +logger = logging.getLogger(__name__) + +Data = namedtuple("Data", "artist count") + +artists = [ + Data("Said Mike", 156), + Data("The Blackout", 141), + Data("Hondo Maclean", 35), + Data("Enter Shikari", 94), + Data("FFAF", 88), +] + + +def selectionSort(array, size): + for ind in range(size): + min_index = ind + + for j in range(ind + 1, size): + # select the minimum element in every iteration + if array[j].count < array[min_index].count: + min_index = j + # swapping the elements to sort the array + (array[ind], array[min_index]) = (array[min_index], array[ind]) + + +selectionSort(artists, len(artists)) +print(artists)