From 356b51458d2ed75e8f03123124e12c141503ad7c Mon Sep 17 00:00:00 2001 From: Prateek <43875858+prateekyo@users.noreply.github.com> Date: Fri, 5 Oct 2018 14:20:19 +0530 Subject: [PATCH 1/2] done --- sorts/bubble_sort.py | 75 ++++++++++++++------------------------------ 1 file changed, 23 insertions(+), 52 deletions(-) diff --git a/sorts/bubble_sort.py b/sorts/bubble_sort.py index e28e7aa4f..0be95af89 100644 --- a/sorts/bubble_sort.py +++ b/sorts/bubble_sort.py @@ -1,52 +1,23 @@ -""" -This is pure python implementation of bubble sort algorithm - -For doctests run following command: -python -m doctest -v bubble_sort.py -or -python3 -m doctest -v bubble_sort.py - -For manual testing run: -python bubble_sort.py -""" - -from __future__ import print_function - - -def bubble_sort(collection): - """Pure implementation of bubble sort algorithm in Python - - :param collection: some mutable ordered collection with heterogeneous - comparable items inside - :return: the same collection ordered by ascending - - Examples: - >>> bubble_sort([0, 5, 3, 2, 2]) - [0, 2, 2, 3, 5] - - >>> bubble_sort([]) - [] - - >>> bubble_sort([-2, -5, -45]) - [-45, -5, -2] - """ - length = len(collection) - for i in range(length): - swapped = False - for j in range(length-1): - if collection[j] > collection[j+1]: - swapped = True - collection[j], collection[j+1] = collection[j+1], collection[j] - if not swapped: break # Stop iteration if the collection is sorted. - return collection - - -if __name__ == '__main__': - try: - raw_input # Python 2 - except NameError: - raw_input = input # Python 3 - - user_input = raw_input('Enter numbers separated by a comma:\n').strip() - unsorted = [int(item) for item in user_input.split(',')] - print(bubble_sort(unsorted)) +def bubbleSort(arr): + n = len(arr) + + # Traverse through all array elements + for i in range(n): + + # Last i elements are already in place + for j in range(0, n-i-1): + + # traverse the array from 0 to n-i-1 + # Swap if the element found is greater + # than the next element + if arr[j] > arr[j+1] : + arr[j], arr[j+1] = arr[j+1], arr[j] + +# Driver code to test above +arr = [64, 34, 25, 12, 22, 11, 90] + +bubbleSort(arr) + +print ("Sorted array is:") +for i in range(len(arr)): + print ("%d" %arr[i]), From f9f5d402d390329b5b88b33c9ce4d625a87917cd Mon Sep 17 00:00:00 2001 From: Harshil Date: Tue, 16 Oct 2018 20:39:22 +0200 Subject: [PATCH 2/2] Update bubble_sort.py Added main method, Made it Python2 suitable, Enabled user input! --- sorts/bubble_sort.py | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/sorts/bubble_sort.py b/sorts/bubble_sort.py index 0be95af89..359a4b21d 100644 --- a/sorts/bubble_sort.py +++ b/sorts/bubble_sort.py @@ -1,23 +1,23 @@ -def bubbleSort(arr): - n = len(arr) +from __future__ import print_function + +def bubble_sort(arr): + n = len(arr) + # Traverse through all array elements + for i in range(n): + # Last i elements are already in place + for j in range(0, n-i-1): + # traverse the array from 0 to n-i-1 + # Swap if the element found is greater + # than the next element + if arr[j] > arr[j+1] : + arr[j], arr[j+1] = arr[j+1], arr[j] + return arr - # Traverse through all array elements - for i in range(n): - - # Last i elements are already in place - for j in range(0, n-i-1): - - # traverse the array from 0 to n-i-1 - # Swap if the element found is greater - # than the next element - if arr[j] > arr[j+1] : - arr[j], arr[j+1] = arr[j+1], arr[j] - -# Driver code to test above -arr = [64, 34, 25, 12, 22, 11, 90] - -bubbleSort(arr) - -print ("Sorted array is:") -for i in range(len(arr)): - print ("%d" %arr[i]), +if __name__ == '__main__': + try: + raw_input # Python 2 + except NameError: + raw_input = input # Python 3 + user_input = raw_input('Enter numbers separated by a comma:').strip() + unsorted = [int(item) for item in user_input.split(',')] + print(*bubble_sort(unsorted), sep=',')