From 3b7236c07e1bb0ca599ec5f04fcaf7b92dd10c35 Mon Sep 17 00:00:00 2001 From: smedekj Date: Mon, 14 Apr 2025 12:37:15 +0200 Subject: [PATCH 1/4] update --- sorting.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/sorting.py b/sorting.py index 2f316a6..d69799a 100644 --- a/sorting.py +++ b/sorting.py @@ -1,5 +1,5 @@ import os - +import csv def read_data(file_name): """ @@ -11,8 +11,21 @@ def read_data(file_name): cwd_path = os.getcwd() file_path = os.path.join(cwd_path, file_name) + with open(file_path, 'r') as file: + reader = csv.DictReader(file) + data = {} + for row in reader: + for header, value in row.items(): + if header not in data: + data[header] = [int(value)] + else: + data[header].append(int(value)) + return data + def main(): + data = read_data('numbers.csv') + print(data) pass From 77c03e5cd9c8541a3f4740d888500e50f4b4bbfa Mon Sep 17 00:00:00 2001 From: smedekj Date: Mon, 14 Apr 2025 13:07:01 +0200 Subject: [PATCH 2/4] update_2 --- sorting.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sorting.py b/sorting.py index d69799a..5f6aec1 100644 --- a/sorting.py +++ b/sorting.py @@ -23,9 +23,28 @@ def read_data(file_name): return data +def selection_sort(number_array, direction='ascending'): + l = len(number_array) + for i in range(l): + min_max_idx = i + for num_idx in range(i+1, l): + if direction == 'ascending': + if number_array[num_idx] < number_array[min_max_idx]: + min_max_idx = num_idx + elif direction == 'descending': + if number_array[num_idx] > number_array[min_max_idx]: + min_max_idx = num_idx + + number_array[i], number_array[min_max_idx] = number_array[min_max_idx], number_array[i] + + return number_array + + def main(): data = read_data('numbers.csv') print(data) + sorted_nums = selection_sort(data['series_1']) + print(sorted_nums) pass From c13171495fffb3ebc16c6f3a1635b4585951e1ff Mon Sep 17 00:00:00 2001 From: smedekj Date: Mon, 14 Apr 2025 13:41:54 +0200 Subject: [PATCH 3/4] update_2 --- sorting.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/sorting.py b/sorting.py index 5f6aec1..f63953f 100644 --- a/sorting.py +++ b/sorting.py @@ -40,11 +40,29 @@ def selection_sort(number_array, direction='ascending'): return number_array +def bubble_sort(number_array): + l = len(number_array) + for i in range(l-1): + for x in range(l-i-1): + if number_array[x] < number_array[x+1]: + continue + elif number_array[x] > number_array[x+1]: + number_array[x], number_array[x+1] = number_array[x+1], number_array[x] + + return number_array + + +def insertion_sort(number_array): + + + def main(): data = read_data('numbers.csv') print(data) sorted_nums = selection_sort(data['series_1']) print(sorted_nums) + sorted_bubble_nums = bubble_sort(data['series_2']) + print(sorted_bubble_nums) pass From b10fb3b6bfb50d625a7ac1e4be2d0ec3e75c9be4 Mon Sep 17 00:00:00 2001 From: smedekj Date: Mon, 14 Apr 2025 14:01:25 +0200 Subject: [PATCH 4/4] update_3 --- sorting.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/sorting.py b/sorting.py index f63953f..c4e7ed3 100644 --- a/sorting.py +++ b/sorting.py @@ -53,16 +53,29 @@ def bubble_sort(number_array): def insertion_sort(number_array): + l = len(number_array) + for i in range(l-1): + index = i + while number_array[index] > number_array[index+1]: + number_array[index], number_array[index + 1] = number_array[index + 1], number_array[index] + if index == 0: + break + else: + index -= 1 + + return number_array def main(): data = read_data('numbers.csv') print(data) - sorted_nums = selection_sort(data['series_1']) + sorted_nums = selection_sort(data['series_2']) print(sorted_nums) sorted_bubble_nums = bubble_sort(data['series_2']) print(sorted_bubble_nums) + sorted_ins_nums = insertion_sort(data['series_3']) + print(sorted_ins_nums) pass