文章分类 -  面试之基础算法

摘要:对于二叉树的遍历,网上主要存在两种言论,有的说是四种,有的说是三种,而我在本科期间所学数据结构与算法这本书上介绍的是三种 先序遍历: 先遍历根节点,然后遍历左子树,再遍历右子树 中序遍历: 先遍历左子树,再遍历根节点,最后遍历右子树 后序遍历: 先遍历左子树,再遍历右子树,最后遍历根节点 ## 有木 阅读全文
posted @ 2019-10-14 17:10 林三点 阅读(84) 评论(0) 推荐(0)
摘要:树是一种重要的复杂数据结构,常见的数据结构还有数组、链表、栈、队列、散列表、树、图 其中树的分类比较多,而且应用也十分广泛,本文主要介绍二叉树 二叉树作为一种最为典型的树,其重要性不言而喻,其中二叉树又可以大致细分为完全二叉树、满二叉树、平衡二叉树、霍夫曼树、(线索二叉树、红黑树、B树、二叉排序树) 阅读全文
posted @ 2019-10-14 16:57 林三点 阅读(161) 评论(0) 推荐(0)
摘要:# 二分查找def binarySearch(arr, start, end, element): if end >= start: mid = int((start + end) // 2) if arr[mid] == element: return mid elif arr[mid] > el 阅读全文
posted @ 2019-10-14 15:02 林三点 阅读(73) 评论(0) 推荐(0)
摘要:# 快速排序def quickSort(arr): if len(arr) <= 1: return arr # 选定基准值 pivot = arr[len(arr) // 2] # 存比基准值小的数字 left = [x for x in arr if x < pivot] # 存放基准值的列表 阅读全文
posted @ 2019-10-14 10:17 林三点 阅读(327) 评论(0) 推荐(0)
摘要:# 插入排序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 阅读全文
posted @ 2019-10-12 18:13 林三点 阅读(74) 评论(0) 推荐(0)
摘要:# 选择排序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 阅读全文
posted @ 2019-10-12 18:05 林三点 阅读(75) 评论(0) 推荐(0)
摘要:# 冒泡排序,默认升序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 阅读全文
posted @ 2019-10-12 17:48 林三点 阅读(77) 评论(0) 推荐(0)