diff --git a/Python/StalinSort.py b/Python/StalinSort.py new file mode 100644 index 0000000..b136f8c --- /dev/null +++ b/Python/StalinSort.py @@ -0,0 +1,32 @@ +""" Python 3's implementation of StalinSort (O(N)) +""" + + +def stalin_sort(lis): + i = 0 + + # While i is less than len of lis + while i < len(lis) - 1: + + # If element i is bigger than next element + # Remove element i + # and decrease i by one if i is not zero + if lis[i] > lis[i + 1]: + + del lis[i] + if i != 0: + i -= 1 + + # Else + # Add to i by one + else: + i += 1 + + return lis + + +# Driver code +if __name__ == '__main__': + example_lis = [20, 0, 1, 188, 20, 100, 2, 10] + print(f"Uncorrected list: {example_lis}") + print(f"Corrected list: {stalin_sort(example_lis)}")