请写出以下算法的伪代码
时间: 2023-11-18 21:34:01 浏览: 68
基本算法的伪代码
4星 · 用户满意度95%
1. 二分查找算法
输入: 有序数组arr,要查找的元素x
输出: 如果找到,返回元素在数组中的下标,否则返回-1
函数 binarySearch(arr, x):
left = 0
right = length(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == x:
return mid
elif arr[mid] < x:
left = mid + 1
else:
right = mid - 1
return -1
2. 快速排序算法
输入: 无序数组arr
输出: 排序后的数组
函数 quickSort(arr):
if length(arr) <= 1:
return arr
pivot = arr[length(arr) // 2]
left, right = [], []
for element in arr:
if element < pivot:
left.append(element)
elif element > pivot:
right.append(element)
return quickSort(left) + [pivot] + quickSort(right)
3. 广度优先搜索算法
输入: 图graph,起始节点start,目标节点target
输出: 找到的一条从起始节点到目标节点的最短路径
函数 bfs(graph, start, target):
queue = Queue()
visited = set()
queue.put([start])
while not queue.empty():
path = queue.get()
node = path[-1]
if node == target:
return path
elif node not in visited:
for neighbor in graph[node]:
new_path = list(path)
new_path.append(neighbor)
queue.put(new_path)
visited.add(node)
return None
阅读全文