From aa2e46bb0bf25f4c484b83b4b4e34ef83b7994a6 Mon Sep 17 00:00:00 2001 From: umarfarooq478 Date: Tue, 14 Feb 2023 21:12:45 +0500 Subject: [PATCH] Added BeadSort in Python --- Bead Sort/BeadSort-Python/BeadSort.py | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Bead Sort/BeadSort-Python/BeadSort.py diff --git a/Bead Sort/BeadSort-Python/BeadSort.py b/Bead Sort/BeadSort-Python/BeadSort.py new file mode 100644 index 0000000..c6335d2 --- /dev/null +++ b/Bead Sort/BeadSort-Python/BeadSort.py @@ -0,0 +1,42 @@ +import random + +class BeadSort: + def main(self): + arr = [random.randint(0, 9) for i in range(random.randint(5, 15))] + print("Unsorted:", arr) + + sort = self.bead_sort(arr) + print("Sorted:", sort) + + def bead_sort(self, arr): + max_val = max(arr) + grid = [['_'] * max_val for i in range(len(arr))] + level_count = [0] * max_val + + for i in range(len(arr)): + num = arr[i] + for j in range(num): + grid[i][j] = '*' + level_count[j] += 1 + + sorted_arr = [0] * len(arr) + for i in range(len(arr)): + putt = 0 + for j in range(max_val): + if grid[len(arr) - i - 1][j] == '*': + putt += 1 + sorted_arr[i] = putt + + return sorted_arr + + def display_1d(self, arr): + print(' '.join(str(x) for x in arr)) + + def display_2d(self, arr): + for i in range(len(arr)): + self.display_1d(arr[i]) + + +if __name__ == '__main__': + bead_sort = BeadSort() + bead_sort.main()