From a8a3a1fae0ea999c8e7d60afa0e0fa00cdf6fc4b Mon Sep 17 00:00:00 2001 From: Yash Chaudhary Date: Tue, 6 Oct 2020 12:17:34 +0530 Subject: [PATCH 1/3] Create radix_sort.py --- Sorting/radix_sort.py | 64 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 Sorting/radix_sort.py diff --git a/Sorting/radix_sort.py b/Sorting/radix_sort.py new file mode 100644 index 0000000..121beaf --- /dev/null +++ b/Sorting/radix_sort.py @@ -0,0 +1,64 @@ +# Python program for implementation of Radix Sort +# A function to do counting sort of arr[] according to +# the digit represented by exp. + +def countingSort(arr, exp1): + + n = len(arr) + + # The output array elements that will have sorted arr + output = [0] * (n) + + # initialize count array as 0 + count = [0] * (10) + + # Store count of occurrences in count[] + for i in range(0, n): + index = (arr[i] / exp1) + count[int(index % 10)] += 1 + + # Change count[i] so that count[i] now contains actual + # position of this digit in output array + for i in range(1, 10): + count[i] += count[i - 1] + + # Build the output array + i = n - 1 + while i >= 0: + index = (arr[i] / exp1) + output[count[int(index % 10)] - 1] = arr[i] + count[int(index % 10)] -= 1 + i -= 1 + + # Copying the output array to arr[], + # so that arr now contains sorted numbers + i = 0 + for i in range(0, len(arr)): + arr[i] = output[i] + +# Method to do Radix Sort +def radixSort(arr): + + # Find the maximum number to know number of digits + max1 = max(arr) + + # Do counting sort for every digit. Note that instead + # of passing digit number, exp is passed. exp is 10^i + # where i is current digit number + exp = 1 + while max1 / exp > 0: + countingSort(arr, exp) + exp *= 10 + + +# Driver code +arr = [170, 45, 75, 90, 802, 24, 2, 66] + +# Function Call +radixSort(arr) + +for i in range(len(arr)): + print(arr[i]) + +# This code is contributed by Mohit Kumra +# Edited by Patrick Gallagher From be51552d63065ec02c005aaeef911a1b214960e4 Mon Sep 17 00:00:00 2001 From: Yash Chaudhary Date: Tue, 6 Oct 2020 12:18:29 +0530 Subject: [PATCH 2/3] Create Iterative_Merge_Sort.py --- Sorting/Iterative_Merge_Sort.py | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Sorting/Iterative_Merge_Sort.py diff --git a/Sorting/Iterative_Merge_Sort.py b/Sorting/Iterative_Merge_Sort.py new file mode 100644 index 0000000..2f2005b --- /dev/null +++ b/Sorting/Iterative_Merge_Sort.py @@ -0,0 +1,35 @@ +def merge(left, right): + if not len(left) or not len(right): + return left or right + + result = [] + i, j = 0, 0 + while (len(result) < len(left) + len(right)): + if left[i] < right[j]: + result.append(left[i]) + i+= 1 + else: + result.append(right[j]) + j+= 1 + if i == len(left) or j == len(right): + result.extend(left[i:] or right[j:]) + break + + return result + +def mergesort(list): + if len(list) < 2: + return list + + middle = len(list)/2 + left = mergesort(list[:middle]) + right = mergesort(list[middle:]) + + return merge(left, right) + +seq = [12, 11, 13, 5, 6, 7] +print("Given array is") +print(seq); +print("\n") +print("Sorted array is") +print(mergesort(seq)) From 0cd33817a5fb4885d62d9386682c5ef8dc298f01 Mon Sep 17 00:00:00 2001 From: Yash Chaudhary Date: Tue, 6 Oct 2020 12:19:13 +0530 Subject: [PATCH 3/3] Create Selection_Sort.py --- Sorting/Selection_Sort.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Sorting/Selection_Sort.py diff --git a/Sorting/Selection_Sort.py b/Sorting/Selection_Sort.py new file mode 100644 index 0000000..4a356e4 --- /dev/null +++ b/Sorting/Selection_Sort.py @@ -0,0 +1,23 @@ +# Python program for implementation of Selection +# Sort +import sys +A = [64, 25, 12, 22, 11] + +# Traverse through all array elements +for i in range(len(A)): + + # Find the minimum element in remaining + # unsorted array + min_idx = i + for j in range(i+1, len(A)): + if A[min_idx] > A[j]: + min_idx = j + + # Swap the found minimum element with + # the first element + A[i], A[min_idx] = A[min_idx], A[i] + +# Driver code to test above +print ("Sorted array") +for i in range(len(A)): + print("%d" %A[i]),