1.二分查找算法
def binarySearch(list,value):
lower=0
upper = len(list)-1
while (upper-lower >=0) :
middle = (lower + upper) // 2
if (list[middle] == value) :
print("Successful! Index:{}".format(middle))
return 0
elif (list[middle] > value) :
upper = middle - 1
else :
lower = middle + 1
print("Failed!")
2.插入排序算法
def insertionSort(list):
for i in range(1, len(list)):
middle = list[i]
j = i - 1
while (middle < list[j] and j >= 0):
list[j+1] = list[j]
j -= 1
list[j+1] = middle
return list
3.快速排序算法
def quickSort(list1):
if (len(list1) <= 1) :
return list1
else:
value = list1[0]
left_list = []
right_list = []
for i in range(1,len(list1)):
if list1[i] < value:
left_list += [list1[i]]
else:
right_list += [list1[i]]
return quickSort(left_list)+[value]+quickSort(right_list)
4.选择排序算法
def selectSort(list1):
for i in range(0, len(list1) - 1):
min_index = i
for j in range(i + 1, len(list1)):
if (list1[min_index] > list1[j]):
min_index = j
middle = list1[i]
list1[i] = list1[min_index]
list1[min_index] = middle
return list1
5.冒泡排序算法
def bubbleSort(list1):
for i in range(len(list1)-1):
j = 0
for j in range(0,len(list1)-j-1):
if(list1[j] > list1[j+1]):
list1[j],list1[j+1] = list1[j+1],list1[j]
return list1
6.归并排序算法
def mergeSort(list1):
if (len(list1) <= 1):
return list1
middle = len(list1) // 2
list1_left = list1[0:middle]
list1_right = list1[middle:]
left_result = mergeSort(list1_left)
right_result = mergeSort(list1_right)
left_small = []
right_big = []
i = 0
j = 0
while (i < len(left_result) and j < len(right_result)):
if (left_result[i] < right_result[j]):
left_small.append(left_result[i])
i += 1
else:
left_small.append(right_result[j])
j += 1
if (i < len(left_result)):
right_big += left_result[i:]
if (j < len(right_result)):
right_big += right_result[j:]
return mergeSort(left_small) + mergeSort(right_big)