算法
文章平均质量分 65
常见算法学习: 排序算法, 递归...
橙子icon
软件开发路程漫长,请多多指教!!!
展开
-
Python实现贪婪算法
Python实现贪婪算法1. 问题描述2. 工作原理3. 建立模型4. 创建数据5. 算法实现6. 执行结果贪婪算法(又称贪心算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪婪算法不是对所有问题都能得到整体最优解,关键是贪婪策略的选择,选择的贪婪策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。1. 问题描述如下图所示,有5个广播台,以及8个州,每个广播台的覆盖范围只有几个州原创 2021-10-29 10:39:21 · 853 阅读 · 0 评论 -
Python实现 宽度/广度优先搜索算法, 深度优先搜索算法
Python实现 宽度/广度优先搜索算法, 深度优先搜索算法1. 二叉树图2. 宽度/广度优先搜索算法(Breadth First Search,BSF)3. 深度优先搜索算法4. 宽度/广度优先搜索算法实现5. 深度优先搜索算法实现6. 完整代码实现1. 二叉树图2. 宽度/广度优先搜索算法(Breadth First Search,BSF)工作原理:从图中某顶点v出发,首先访问定点v在访问了v之后依次访问v的各个未曾访问过的邻接点;然后分别从这些邻接点出发依次访问它们的邻接点,并使得“原创 2021-10-28 17:36:41 · 2726 阅读 · 0 评论 -
Python实现二分查找算法
Python实现二分查找算法1. 概念2. 查找原理3. 要求4. 实现代码4.1 非递归方式4.2 递归方式5. 时间复杂度1. 概念二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。2. 查找原理首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步原创 2021-10-28 16:44:39 · 423 阅读 · 0 评论 -
常见排序算法【1】
算法--排序算法【1】1.最常用的排序算法2.冒泡排序3. 插入排序4. 选择排序1.最常用的排序算法冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。排序算法时间复杂度是否基于比较冒泡、插入、选择O(n^2)Y快排、归并O(nlogn)Y桶、计数、基数O(n)N2.冒泡排序冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少一个原创 2020-06-16 11:19:35 · 86 阅读 · 0 评论 -
常见排序算法【2】
算法--排序算法【2】1. 希尔排序2. 归并排序3. 快速排序4.快速排序和归并排序的区别5. 桶排序6. 计数排序7. 基数排序1. 希尔排序希尔排序(以发明者的名字命名),是 插入排序 的一种更高效的改进版本实现思路代码实现def shell_sort(alist):n = len(alist)gap = n // 2while gap >= 1: for j in range(gap, n): i = j while i - gap原创 2020-06-22 15:18:10 · 138 阅读 · 0 评论