数据结构与算法
君羊416
这个作者很懒,什么都没留下…
展开
-
python实现基础排序算法
概述:整理了一下自己学习数据结构与算法过程中利用python实现的常见排序算法,包括:冒泡排序,插入排序,选择排序,归并排序,快速排序,堆排序,计数排序。下面依次贴出代码。一.复杂度为O(n^2)的算法1.冒泡排序def bubbleSort(seq): "冒泡排序" n = len(seq) print("待排序列表") print(seq) ...原创 2018-08-09 16:01:10 · 227 阅读 · 0 评论 -
二叉树的遍历python实现
二叉树的前,中,后,层次遍历递归版本的前序遍历def preOrderRecur(node): if not node: return print(node.val) preOrderRecur(node.left) preOrderRecur(node.right)递归版本的中序遍历def inOrderRecur(node):...原创 2018-11-01 16:05:55 · 159 阅读 · 0 评论 -
python 实现开方
问题描述:利用python实现开根号操作1.调用库的方法import mathres = math.sqrt(x)或者一个python特性的方法res = x ** 0.52.二分法实现二分法实现要主要x的范围,对应的二分范围也不同:时,二分的范围应该是,这个可以求导得到时,范围应该是二分法应该给定一个精度,每次二分的结果平方和x比较,如果小于精度,则返回...原创 2018-11-07 16:32:26 · 35491 阅读 · 0 评论 -
top k问题python解
题目来源:Leetcode 215 数组中第K个最大的元素题目描述:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 51.排序方法复杂度为O(nlogn),可以直接调用python的排序函数做(用时52ms):class ...原创 2018-11-07 14:07:49 · 4438 阅读 · 1 评论 -
二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:从左下开始查找:如果当前值等于目标值,返回如果当前值小于目标值,说明当前的左面都小于目标,右移一个如果当前值大于目标值,锁门当前的下面都大于目标,上移一个class S...原创 2018-11-01 22:40:06 · 84 阅读 · 0 评论 -
二叉树遍历
class TreeNode: def __init__(self, val): self.val = val self.left = None self.right = Nonedef build_tree(n): nodes = [TreeNode(i) for i in range(n)] for i in ra...原创 2019-04-03 18:47:42 · 152 阅读 · 0 评论 -
python3 二次排序
写在前面:在处理排序任务时候,有时候需要对表格进行排序,比如第一列升序,第二列降序。。解决方案:思路一:用Python的sort特性进行:匿名函数中的x代表两个元素的列表,如果某一列i降序,就在x[i]加负号t = [ [1, 3], [2, 1], [1, 2], [3, 1]]t.sort(key=lambda x: (x[0...原创 2019-07-11 12:20:30 · 1731 阅读 · 0 评论