文章分类 - 面试之基础算法
摘要:对于二叉树的遍历,网上主要存在两种言论,有的说是四种,有的说是三种,而我在本科期间所学数据结构与算法这本书上介绍的是三种 先序遍历: 先遍历根节点,然后遍历左子树,再遍历右子树 中序遍历: 先遍历左子树,再遍历根节点,最后遍历右子树 后序遍历: 先遍历左子树,再遍历右子树,最后遍历根节点 ## 有木
阅读全文
摘要:树是一种重要的复杂数据结构,常见的数据结构还有数组、链表、栈、队列、散列表、树、图 其中树的分类比较多,而且应用也十分广泛,本文主要介绍二叉树 二叉树作为一种最为典型的树,其重要性不言而喻,其中二叉树又可以大致细分为完全二叉树、满二叉树、平衡二叉树、霍夫曼树、(线索二叉树、红黑树、B树、二叉排序树)
阅读全文
摘要:# 二分查找def binarySearch(arr, start, end, element): if end >= start: mid = int((start + end) // 2) if arr[mid] == element: return mid elif arr[mid] > el
阅读全文
摘要:# 快速排序def quickSort(arr): if len(arr) <= 1: return arr # 选定基准值 pivot = arr[len(arr) // 2] # 存比基准值小的数字 left = [x for x in arr if x < pivot] # 存放基准值的列表
阅读全文
摘要:# 插入排序def insertSort(arr): length = len(arr) for i in range(1, length): j = i while j > 0: if arr[j] < arr[j - 1]: arr[j], arr[j - 1] = arr[j - 1], ar
阅读全文
摘要:# 选择排序def choiceSort(arr): length = len(arr) for i in range(length): # 假定索引i对应的是最小元素的下标 min_idx = i for j in range(i + 1, length): if arr[min_idx] > a
阅读全文
摘要:# 冒泡排序,默认升序def bubbleSort(arr, order=True): n = len(arr) for i in range(n): for j in range(n - 1 - i): # 如果是升序 if order: if arr[j] > arr[j + 1]: arr[j
阅读全文
浙公网安备 33010602011771号