数据结构与算法
文章平均质量分 54
系统地学习数据结构及其相关算法,使用Python作为实现语言。
AICVHub
计算机专业背景/高级算法工程师/数据分析师/算法架构师/人工智能领域优质创作者/CSDN博客专家,专注AI领域知识分享,涉及内容从paper解读/源码剖析/数据处理/模型优化,到算法落地与工程化部署;领域包括:机器学习/深度学习/计算机视觉/音频处理/信号处理/结构化数据分析与挖掘/服务器&端侧AI算法部署;topic包括但不限于:图像单&多标签分类、目标检测、图像分割、图像检索、人脸识别、音频分类、声纹识别等;擅长[学术-->工业]算法落地,从实用性出发解决业务痛点,曾负责多项大型AI项目的研发与落地;曾研发出多项业界领先的产品/模型。
展开
-
数据结构与算法(十四):二分查找问题之变形
二分查找问题的简单形式是:直接查找元素值等于指定值的元素。然而,实际应用中,会有各种各样的变形问题:存在重复元素值,查找第一个值等于指定值的元素; 存在重复元素值,查找最后一个值等于指定值的元素; 查找第一个大于等于指定值的元素; 查找最后一个小于等于指定值的元素;对于变形的二分查找问题,基本思路与简单情况类似,所不同的是需要考虑更复杂的边界情况的处理。变形1:存在重复元素值,查找第一个值等于指定值的元素比如下面这样一个有序数组,其中,a[5],a[6],a[7]的值都等于 8.原创 2020-05-29 14:05:07 · 1037 阅读 · 0 评论 -
数据结构与算法(十三):二分查找
二分查找适用条件:数据是有序的;数据是连续、顺序存储的,也即:存储形式为数组;更适合于大规模静态数据(无频繁增删);二分查找基本思想:针对数组A,待查找元素value,设定low、high分别为数组头尾下标;1. 令mid = (low+high)//2;2. 若A[mid] == value,则返回mid,否则: 2.1. 若value<A[mid],high = mid-1; 2.2. 若value>A[mid],low = mid+1;3. ...原创 2020-05-15 15:27:21 · 290 阅读 · 0 评论 -
数据结构与算法(十二):计数排序
计数排序的基本思想、适用条件、排序过程,以及Python实现。原创 2020-05-13 15:47:19 · 483 阅读 · 0 评论 -
数据结构与算法(十一):归并排序、快速排序
算法原理及其比较算法基本思想:归并和快排都是属于分治思想,其不同之处在于: 归并排序首先将原始序列不断二分,最后从叶子结点处,自底向上进行归并;而快速排序则自顶向下地进行,每次随机选择一个元素,将序列分为小于等于和大于该元素的两个序列; 空间复杂度方面,归并排序由于无法原地排序,其空间复杂度为,快排可以原地排序,其空间复杂度为; 时间复杂度方面,归并排序不管是最好情况、最坏情况,还是平均情况,时间复杂度都是 ;而快排则除了最坏情况下为,其余情况为.Python实现归并排序:d.原创 2020-05-12 16:19:35 · 228 阅读 · 0 评论 -
数据结构与算法(十):冒泡、插入、选择排序算法
介绍了冒泡、插入、选择排序算法的基本思想及其空间复杂度、时间复杂度、稳定性方面的比较;并使用Python对三种算法进行了实现。原创 2020-05-08 16:26:14 · 257 阅读 · 0 评论 -
数据结构与算法(九):递归原理及其Python实现
以走台阶问题为例,介绍递归的原理及其条件,并分别使用递归和循环方式解决该问题。原创 2020-04-28 11:29:53 · 418 阅读 · 0 评论 -
数据结构与算法(八):顺序队列、栈式队列
和栈一样,队列也是一种操作受限的线性表,其操作满足“先进先出”规则。今天使用Python里面的list来实现一个顺序链表,规则:使用数组/列表存储,包括头尾指针; 入队时尾部指针后移,出队时头部指针后移; 尾部指针到达数组长度且头部指针不在首地址,则需数据搬移。废话少说,直接上码:class SequentialQueue(object): """顺序队列: ...原创 2020-04-21 15:27:15 · 250 阅读 · 1 评论 -
数据结构与算法(七):基于栈实现字符串中的括号匹配
上一篇博客定义了栈的类,并实现了简单的“+-*/”四则运算,今天再利用栈结构实现一个简单的应用:判断字符串中的左右括号是否匹配的问题。题目描述:给定一个字符串,其中包括了左右括号以及其他字符,编写程序判断其中的左右括号是否合法。假设只有四种括号:左括号:['<', '(', '[','{'];右括号:['>', ')', ']','}'];解法:定义一个括号...原创 2020-04-21 09:35:54 · 1020 阅读 · 0 评论 -
数据结构与算法(六):基于栈实现简单的四则运算
使用Python,基于栈结构,解决简单四则运算问题。原创 2020-04-20 15:10:44 · 641 阅读 · 1 评论 -
数据结构与算法(五):循环链表、双向循环链表的实现
单链表以及双向链表的实现可参考之前文章:数据结构与算法(二):Python 单向链表及其排序数据结构与算法(三):Python实现双向链表并遍历今天分别对单链表和双向链表添加循环,使之分别成为循环单链表、循环双向链表。本次实现,均使用了哨兵结点,也即在创建链表之前的初始化部分,已经自动创建了一个内容为None的节点,这样做的目的是为了在后续插入其他结点时,可以不用考虑原链表为...原创 2020-04-17 15:54:35 · 259 阅读 · 0 评论 -
数据结构与算法(四):Python实现单链表的反转、环的检测、两个有序链表的合并、判断单向链表是否是回文字符串
单链表的反转、环的检测、两个有序链表的合并、判断单向链表是否是回文字符串原创 2020-04-16 14:26:55 · 264 阅读 · 0 评论 -
数据结构与算法(三):Python实现双向链表并遍历
使用Python实现双向链表,包括创建、增加节点、遍历。原创 2020-04-13 14:48:31 · 881 阅读 · 0 评论 -
数据结构与算法(二):Python 单向链表及其排序
基于Python进行单向链表的定义,及其冒泡排序实现。原创 2020-04-10 15:16:57 · 1259 阅读 · 1 评论 -
数据结构与算法(一):时间复杂度与空间复杂度
介绍什么是数据结构、算法,并介绍时间、空间复杂度概念,及其计算方法。原创 2020-04-14 16:46:57 · 370 阅读 · 1 评论