mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-07-07 03:07:46 +08:00
address merge_soft duplicate files (#1612)
Here the old file merge_sort_fastest is renamed to unknown_sort. Because it is not merge sort algorithm. Comments are updated accordingly.
This commit is contained in:

committed by
Christian Clauss

parent
caad74466a
commit
494fb4fb49
39
sorts/unknown_sort.py
Normal file
39
sorts/unknown_sort.py
Normal file
@ -0,0 +1,39 @@
|
||||
"""
|
||||
Python implementation of a sort algorithm.
|
||||
Best Case Scenario : O(n)
|
||||
Worst Case Scenario : O(n^2) because native python functions:min, max and remove are already O(n)
|
||||
"""
|
||||
|
||||
|
||||
def merge_sort(collection):
|
||||
"""Pure implementation of the fastest merge sort algorithm in Python
|
||||
|
||||
:param collection: some mutable ordered collection with heterogeneous
|
||||
comparable items inside
|
||||
:return: a collection ordered by ascending
|
||||
|
||||
Examples:
|
||||
>>> merge_sort([0, 5, 3, 2, 2])
|
||||
[0, 2, 2, 3, 5]
|
||||
|
||||
>>> merge_sort([])
|
||||
[]
|
||||
|
||||
>>> merge_sort([-2, -5, -45])
|
||||
[-45, -5, -2]
|
||||
"""
|
||||
start, end = [], []
|
||||
while len(collection) > 1:
|
||||
min_one, max_one = min(collection), max(collection)
|
||||
start.append(min_one)
|
||||
end.append(max_one)
|
||||
collection.remove(min_one)
|
||||
collection.remove(max_one)
|
||||
end.reverse()
|
||||
return start + collection + end
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
user_input = input("Enter numbers separated by a comma:\n").strip()
|
||||
unsorted = [int(item) for item in user_input.split(",")]
|
||||
print(*merge_sort(unsorted), sep=",")
|
Reference in New Issue
Block a user