Merge branch 'improved_sorting_algo' of git://github.com/YasirChoudhary/Python

This commit is contained in:
Harshil 2018-10-26 17:25:36 +02:00
commit f0d5bc6ece
2 changed files with 30 additions and 14 deletions

View File

@ -1,18 +1,34 @@
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
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-1):
swapped = False
for j in range(length-1-i):
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

View File

@ -31,7 +31,7 @@ def selection_sort(collection):
"""
length = len(collection)
for i in range(length):
for i in range(length - 1):
least = i
for k in range(i + 1, length):
if collection[k] < collection[least]: