数据结构与算法
文章平均质量分 70
数据结构相关知识
编程与实战
这个作者很懒,什么都没留下…
展开
-
优秀程序员的思维方式
1 最重要的当然是抽象思维拥有抽象思维,能够让你深刻地理解外部世界。作为程序员,也应当有程序员的抽象思维,提取程序的本质数据,而不用拘泥于数据的各种细节处理,站在一个比较高的高度去看问题。判断一个程序员的水平,很重要的一点就是看他对于代码的抽象程度。抽象是一种能让你在关注某一概念(你抽象出来的是本质)的同时可以放心忽略其中一些细节,告别繁琐的业务逻辑。学习的时候,也要有抽象思维,虽然我不知道这行代码怎么写,也看不懂,但是我知道这行代码抽象出来的结果是怎么样的,抽象出来的初始条件是什么,中间过原创 2021-11-25 10:27:23 · 1745 阅读 · 1 评论 -
新手入门 Python 的学习网站
1 Python 小例子来自 github 网站上的项目,提供了 141 个代码小样,并标注了难度等级。告别枯燥,致力于打造 Python 经典小例子、小案例。https://github.com/jackzhenguo/python-small-examples2 编程教室Crossin的编程教室 - 在线练习https://crossincode.com/oj/sample_list/3 python100天从新手到大师这是一个github网站11W+原创 2021-11-24 11:33:18 · 1200 阅读 · 0 评论 -
精心整理的计算机专业书单
1、C语言这本书入门挺好的,感觉可以提高对C的兴趣,里面讲的东西也不是那么难懂。可以作为入门第一本书。C程序设计语言第一本书《C程序设计语言》,机械工业出版社,作者Brian W. Kernighan / (美)Dennis M. Ritchie。C 语言之父写的,入门经典书籍。C Primer Plus《C Primer Plus》 ,人民邮电出版社,作者 Stephen Prata。可以作为 C 语言工具书,也可以作为入门,内容循序渐进,能够锻炼编程思想。C和指针原创 2021-11-23 11:00:14 · 1461 阅读 · 0 评论 -
为学弟学妹精心整理的 python 系统入门学习
书籍《Python编程,从入门到实践》,这应该是世界上最畅销的Python编程书,没有之一。英文名叫作《Python crash course》,作者Eric Matthes是一名高中老师,正是有着丰富的教学经验才会写出这样深得人心的书。看了本书的目录,基本把python的核心语法都讲到了,学完之后可以搞点小事情,比如数据分析、可视化编程、web开发等。《Python学习手册》,该书已经出到第五版,对语法的讲解非常详细,而且有丰富的插图和示例代码。详细有时候意味着啰嗦,很多人觉得作者过于琐碎,但其实原创 2021-10-15 12:11:29 · 677 阅读 · 1 评论 -
作为计算机专业学生,最应该学习的课程前五位是什么?
我认为最应该学习的前五位课程是: 数据结构与算法 操作系统 计算机网络 数据库 至少一门编程语言(C/C++、java、C#、python等) 一、数据结构与算法这里把数据结构和算法整在了一起,其实数据结构与算法是相互独立的学科。但是二者之间关系又很密切,数据结构用于解决数据存储问题,而算法是思考如何利用存储的数据快速无误地解决问题。在解决问题的过程中,数据结构要配合算法选择最优的存储结构来存储数据,而算法也要结合数据存储的特点,用最优的策略来分析并处理原创 2021-09-07 08:57:52 · 1400 阅读 · 0 评论 -
C++ 50 家企业校招面经
校招面经大家好,我是唐唐。昨天一位读者分享了自己的 C++ 面试经历。简单沟通后,读者双非本硕,自嘲注定就是炼狱模式。50 家公司的 C++ 面经也整理好了。本次就分享下面经。以后分享学习路线和心得。程序员书籍资源!读者情况:双非本硕,本科机械,硕士做的软件开发课题。学过一点点 C++,但是面试前连多态都不会写。研三经历炼狱校招,从零开始学习,数据结构和算法也是从零开始。时间:2020 年 10 月- 2021 年 4 月结果:几乎面试了所有大厂,收到了 13 份 offe原创 2021-08-26 13:23:55 · 1649 阅读 · 1 评论 -
精心为学弟学妹整理的 C语言/C++ 项目合集
C语言/C++ 是一门实践性很强的课程。如果只看书,不做上机练习,相当于纸上谈兵。很多小伙伴经常问“有什么项目推荐?” ,今天推荐一些。1、C语言/C++ 入门项目合集夯实 C 语言/C++ 基础,训练编程思维,培养解决问题的思路,领略多姿多彩的 C 语言/C++。包括 C语言/C++ 迷宫、24点游戏、奔跑的火柴人、超市管理系统、打字母、电子时钟、对对碰、俄罗斯方块、黑白棋、华容道、火车票订票管理源码、连连看、商品销售系统、象棋、超级玛丽、图书管理系统、学生成绩管理系统.......原创 2021-08-25 12:07:40 · 2259 阅读 · 2 评论 -
熬夜为学弟学妹整理的网络编程基础知识!
OSI七层模型程序员硬核书籍资源,点击查看!程序员必备资源,点击下载! 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。 数据链路层:定义了如何让格式化数据以帧为单位进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。如:串口通信中使用到的115原创 2021-08-10 21:53:58 · 992 阅读 · 0 评论 -
数据结构之进制转换器实现
进制转换器项目要求:用户提供需要转换的数据和该数据的进制,以及要转换的进制,进制转换器提供给用户最终的正确转换的结果。转换器实例例如,用户提供了一个十进制数:10,要求将此数据以二进制形式转换,则通过进制转换器转换的最终结果应该:1010。提示:此进制转换器可以在2-36 进制之间对数据进行任意转换。各进制中对应的数字如下表:设计思路当用户给定 2 - 36 进制中的任意一进制数时,最简单的方法是使用顺序存储结构进行存储,即使用字符串数组存储。转化时,最直接的思路就.原创 2021-08-04 13:32:41 · 1787 阅读 · 1 评论 -
数据结构实践项目之俄罗斯轮盘赌小游戏
俄罗斯轮盘赌,想必很多人都听说过,一种残忍的赌博游戏。游戏的道具是一把左轮手枪,其规则也很简单:在左轮手枪中的 6 个弹槽中随意放入一颗或者多颗子弹,在任意旋转转轮之后,关上转轮。游戏的参加者轮流把手枪对着自己,扣动扳机:中枪或是怯场,即为输的一方;坚持到最后的即为胜者。本节实践项目同轮盘赌类似,游戏规则:n 个参加者排成一个环,每次由主持向左轮手枪中装一颗子弹,并随机转动关上转轮,游戏从第一个人开始,轮流拿枪;中枪者退出赌桌,退出者的下一个人作为第一人开始下一轮游戏。直至最后剩余一个人,即为胜者。要原创 2021-06-29 20:39:50 · 2475 阅读 · 1 评论 -
别再问我推荐什么书籍和网课,这次把私藏很久的资料都贡献了(上),建议收藏!
平时有不少读者朋友问,有没有学习书籍网上课程推荐?今天结合自己学习经历与身边几个朋友的经历总结了一份程序员相关的书籍和网课。1、C语言书籍第一本书《C程序设计语言》,机械工业出版社,作者Brian W. Kernighan / (美)Dennis M. Ritchie。C 语言之父写的,入门经典书籍,建议大家作为 C语言入门的第一本书。《C Primer Plus》 ,人民邮电出版社,作者 Stephen Prata。 可以作为 C 语言工具书,也可以作为入门,内容循序渐进,能够锻炼编程思.原创 2021-06-08 09:33:14 · 10511 阅读 · 22 评论 -
九大查找算法,值得收藏
时间、空间复杂度比较查找算法 平均时间复杂度 空间复杂度 查找条件 顺序查找 O(n) O(1) 无序或有序 二分查找(折半查找) O(log2n) O(1) 有序 插值查找 O(log2(log2n)) O(1) 有序 斐波那契查找 O(log2n) O(1) 有序 哈希查找 O(1) O(n) 无序或有序 二叉查找树(二叉搜索树查找) O(log2n) .原创 2021-05-24 10:48:40 · 4341 阅读 · 9 评论 -
精心为学弟学妹准备的刷题笔记与代码规范,看完距大厂又近了一步!值得收藏!
一、算法虽然网上流传一句话,面试造火箭,入职拧螺丝。但毋庸置疑,算法是每个程序员必须掌握的基本功。是能力高低的分水岭,是大厂选拔人才的重要标准。所以,即使只是为了面试笔试,也需要把算法学好,为大家整理了两份不错的资料,平时多刷刷题为面试笔试做点准备。1、LeetCode101题解,点击下载2、字节跳动50道高频算法,点击下载LeetCode101题解作者高畅是谷歌无人车部门(Waymo)的工程师。他在美国卡内基梅隆大学攻读硕士学位时,为了准备实习秋招,他从夏天开始整理某 code原创 2021-05-13 15:22:40 · 6844 阅读 · 16 评论 -
干货收藏:一文掌握十大经典排序算法(动态演示+代码)
以前也零零碎碎发过一些排序算法,但排版都不太好,又重新整理一次,排序算法是数据结构的重要部分,系统地学习很有必要。时间、空间复杂度比较排序算法 平均时间复杂度 最差时间复杂度 空间复杂度 数据对象稳定性 冒泡排序 O(n2) O(n2) O(1) 稳定 选择排序 O(n2) O(n2) O(1) 数组不稳定、链表稳定 插入排序 O(n2) O(n2) O(1) 稳定 快速排序 O(n原创 2021-05-11 20:39:20 · 3516 阅读 · 20 评论 -
当初数据结构与算法这样学,现在也不至于这样!!!
学习数据结构与算法一个很重要的前提,就是至少熟练掌握一门编程语言。至于是那种语言就无关紧要了,C 语言、C++、Java、Python 等语言都可以。因为无论是数据结构还是算法,它教会我们的是解决问题的思想,并不挂靠某一门具体的编程语言。换句话说,在掌握任何一门编程语言的基础上,都可以学习数据结构和算法。数据结构与算法的关系大量数据结构教程中都将数据结构的知识和算法掺杂起来讲,使很多初学者认为数据结构就是在讲算法,这样理解是不准确的。如果把程序理解为:程序=数据+算法那么数据结构用于解决原创 2021-04-23 20:04:08 · 6108 阅读 · 27 评论 -
「超全!」谷歌大神 LeetCode 刷题笔记 PDF 分享
这是一本面向有C++编程基础,但缺乏刷题经验的读者的教科书和工具书(不适合完全的编程小白喔);同时,这是一本总结了15种常见类型题,50种细分类型题,101道题解的LeetCode刷题指南~作者高畅是谷歌无人车部门(Waymo)的工程师,从事计算机视觉和机器学习方向。他在美国卡内基梅隆大学攻读硕士学位时,为了准备实习秋招,他从夏天开始整理某 code 上的题目,几个月的时间,刷了几百道题目。本书分为算法和数据结构两大部分,又细分了十五个章节,详细讲解了刷题时常用的技巧。而且,在每一章节的末尾,作者都原创 2021-02-25 15:30:17 · 4577 阅读 · 2 评论 -
字节跳动「50道高频算法题」
相信业内人士都知道,一些大厂的面试,是需要手撕算法和数据结构的。为什么要学习数据结构和算法?功利一点说,因为面试需要。网上流传一句话,面试造火箭,入职拧螺丝。意思是,面试的时候各种高要求,各种有一定难度的理论基础知识,但是入职之后做的工作内容,就是没什么挑战的搬砖任务。在实际工作中,确实大部分时候是不需要程序猿手写实现一个算法或者数据结构的。但是,有些时候,还是需要去手动实现一些算法的,比如游戏里常用的寻路算法,视野管理算法。对于大厂来说,福利待遇都更好,自然也是想招聘到更加有效率的人。一、原创 2021-02-16 20:36:08 · 2752 阅读 · 5 评论 -
字节跳动《算法中文手册》火了,完整版 PDF 开放下载!
今天给大家推荐一份曾经火爆全网的算法中文小册,据说有不少小伙伴靠这份指南成功掌握了算法的核心技能,成功拿到了 BAT offer。先来给你们看看里面具体都有哪些内容:目前上述内容已打包成完整电子书:链接:https://pan.baidu.com/s/1NtV1eM3Onwck93q4otc5AA提取码:1234...原创 2021-02-12 21:12:35 · 1016 阅读 · 0 评论 -
数据结构之堆栈
堆栈的基本概念堆栈是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是:线性表允许在任意位置插入和删除数据元素操作,而堆栈只允许在固定一端进行插入和删除数据元素操作根据堆栈的定义,每次进栈的数据元素都放在原当前栈顶元素之前而成为新的栈顶元素,每次退栈的数据元素都是原当前栈顶元素,这样,最后进入堆栈的数据元素总是最先退出堆栈,因此,堆栈也称作后进先出的线性表,或简称后进先出表。例子设有数据元素序列A,B,C,是否可以利用一个堆栈,得到数据元素序列B, A, C。原创 2020-10-26 16:11:52 · 1542 阅读 · 2 评论 -
数据结构之线性表(顺序表、单链表、双链表)
1 线性表的基本概念 对于同一个线性表,其每一个数据元素的值虽然不同,但必须具有相同的数据类型; 数据元素之间具有一种线性的或“一对一”的逻辑关系; 第一个数据元素没有前驱,这个数据元素被称为开始节点; 最后一个数据元素没有后继,这个数据元素被称为终端节点; 除了第一个和最后一个数据元素外,其他数据元素有且仅有一个前驱和一个后继; 2 线性表抽象数据类型描述基本操作如下: 线性表的置空操作clear():将一个已经存在的线性表置为空表;原创 2020-10-26 16:08:47 · 1997 阅读 · 0 评论 -
一文理解洗牌算法
引言 首先看一道题目:有一个大小为100的数组,里面的元素是从 1 到 100,随机从数组中选择50个不重复数。用 Math.random() * 100 ,就可以拿到一个 0 到 99...原创 2020-06-18 14:30:57 · 770 阅读 · 0 评论 -
数组中重复的数字(C语言/C++)
题目描述在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 :输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3思路分析首先想到的是暴力法—两个for循环实现,缺点很明显:用时过多。再进一步可以先排序数组然后一次for循环,容易找出所有的重复元素以及重复的次数,用时依旧较长。我们考虑如果每个数字都置出现一次,那么此时是最完美的原创 2020-05-25 21:47:25 · 3774 阅读 · 0 评论 -
如何通过ADO接口连接数据库
问题详述:ADO最主要的优点是易于使用、速度快、内存支出少和磁盘痕迹小。在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所以这些都是为了提供轻量、高性能接口。那么如何实现ADO连接数据库呢?打开百度APP,查看更多高清图片如果对你有帮助的话,帮忙推荐同学朋友关注公众号,是小编最好的支持具体过程:首先需要一个ODBC数据源。然后用_ConnectionPtr对象...原创 2020-04-19 19:10:37 · 718 阅读 · 0 评论 -
批量数据数据库操作
数据库优化法则归纳为5个层次:1、 减少数据访问(减少磁盘访问)2、 返回更少数据(减少网络传输或磁盘访问)3、 减少交互次数(减少网络传输)4、 减少服务器CPU开销(减少CPU及内存开销)5、 利用更多资源(增加资源)数据批量处理一般有两种情况(针对减少磁盘访问):1、数据从一个数据库表A迁移到另一个数据库表B,这种情况可以每次取一定数量(例如:5条)进行批量插入。语...原创 2020-02-29 21:16:48 · 501 阅读 · 0 评论