====== Sorting Algorithms ======
^Bubble Sort Algorithm^
|def bubble_sort(a_list):
list_length = len(a_list) - 1
for i in range(list_length):
no_swaps = True
for j in range(list_length):
if a_list[j] > a_list[j + 1]:
a_list[j], a_list[j + 1] = a_list[j + 1], a_list[j]
no_swaps == False
if no_swaps:
return a_list
return a_list
|
^Insertion Sort Algorithm^
|def insertion_sort(a_list):
for i in range(1, len(a_list)):
value = a_list[i]
while i > 0 and a_list[i - 1] > value:
a_list[i] = a_list[i - 1]
i = i - 1
a_list[i] = value
return a_list
|
^Merge Sort Algorithm^
|def merge_sort(a_list):
if len(a_list) > 1:
mid = len(a_list) // 2
left_half = a_list[:mid]
right_hald = a_list[mid:]
merge_sort(left_half)
merge_sort(right_half)
left_ind = 0
right_ind = 0
alist_ind = 0
while lef_ind < len(left_half) and right_ind < len(right_half):
if left_half[left_ind] <= right_half[right_ind]:
a_list[alist_ind] = left_half[left_ind]
left_ind += 1
else:
a_list[alist_ind] = right_half[right_ind]
right_ind += 1
alist_ind += 1
while left_ind < len(left_half):
a_list[alist_ind]=left_half[left_ind]
left_ind += 1
alist_ind += 1
while right_ind < len(right_half):
a_list[alist_ind] = right_half[right_ind]
right_ind += 1
alist_ind += 1
|