Skip to content

Commit

Permalink
Merge Sort - Version 2
Browse files Browse the repository at this point in the history
  • Loading branch information
MitchellShibilski-Unkel committed Dec 19, 2023
1 parent 1f1fbf1 commit e22cc6f
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
File renamed without changes.
50 changes: 50 additions & 0 deletions Sorting Tests/mergeSort.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import time


# Start timer
startTimer = time.perf_counter()
startTimer2 = time.process_time()

# Random numbers in a list
theList = [None]

# --- Merge Sort --- #
sortedList = []
def mergeSort(array = []):
# Get each side their vars
leftSum = len(array) // 2
leftSide = array[0:leftSum]
rightSide = array[leftSum:]

sortedArray = []

# Register values as a functional list
newRightSideList = []
newLeftSideList = []
for nl in leftSide:
newLeftSideList.append(nl)
for rl in rightSide:
newRightSideList.append(rl)

# Sort left side
for l in range(len(newLeftSideList)):
minValue = min(newLeftSideList)
sortedArray.append(minValue)
newLeftSideList.remove(minValue)

# Sort right side
for r in range(len(newRightSideList)):
minValue = min(newRightSideList)
sortedArray.append(minValue)
newRightSideList.remove(minValue)

# Sorted list
# Finally, sort both sides using each sorted side (left and right)
print(sorted(sortedArray))

mergeSort(theList)

endTimer = time.perf_counter()
endTimer2 = time.process_time()

print(f"Task Finished In Performance: {endTimer - startTimer:0.8f}\nTask Finished In Process/CPU/Kernel + User Space: {endTimer2 - startTimer2:0.8f}")

0 comments on commit e22cc6f

Please sign in to comment.