最近看完《算法图解》对python的算法有点了解,特记录下来
#选择排序
def selectSort(arr):
newArr = []
oldArr = arr.copy()
for i in range(len(arr)):
mix_index = 0
#遍历查找oldArr中最低的元素,并删除添加到新数组中
for i in range(1,len(oldArr)):
if oldArr[mix_index] > oldArr[i]:
mix_index = i
newArr.append(oldArr[mix_index])
oldArr.pop(mix_index)
return newArr
#快速排序
def quickSort(arr):
#基线条件
if len(arr) < 2:
return arr
else:
#基准值
pivot = arr[0]
less = []
gretter = []
for i in arr[1:]:
if i > pivot:
gretter.append(i)
else:
less.append(i)
#用递归进行反复排序
return quickSort(less) + [pivot] + quickSort(gretter)
#广度优先搜索
#广度优先搜索
from collections import deque #引入堆(队列)
def search_queue(dic):
searchQueue = deque()
searchQueue.append(dic['a'])
searched = [] #已搜索队列
while searchQueue:#只要队列不为空
letter = searchQueue.popleft()
if letter not in searched:
if letter[-1] == 'f':
print("找到终点了")
return True
else:
for each in letter:
searchQueue.append(dic[each])
searched.append(letter)
return False
dic = {}
dic['a'] = ['b','c']
dic['b'] = ['d']
dic['c'] = ['e']
dic['d'] = ['g']
dic['e'] = ['f']
dic['f'] = []
dic['g'] = []
print(search_queue(dic))