数据结构&算法
刻意练习算法,强化编码能力,助力入职大厂
七哥带你学编程
一个写文章也喜欢拍视频的程序员。IT咨询到微信公众号:“七哥聊编程” 直接私信即可。
展开
-
大厂面试:如何用快排思想在O(n)内查找第K大元素?
上一片文章我们学习冒泡排序、插入排序、选择排序这三种排序算法(点击文末链接查看),它们的时间复杂度都是 O(n2),比较高,适合小规模数据的排序。今天,我们学习时间复杂度为 O(nlogn) 的排序算法,归并排序和快速排序。这两种排序算法适合大规模的数据排序,比上篇文章学习的那三种排序算法要更常用。 归并排序 归并排序的核心思想还是蛮简单的。如果要排序一个数组,我们先把数组从中间分成前后两...原创 2020-03-29 15:15:19 · 287 阅读 · 0 评论 -
面试官:冒泡、插入、选择这三种常见的排序算法你了解?为什么插入排序更受欢迎?
排序算法应该是我们每个人刚开始学习时都会接触的,应该是大部分人学习的第一个算法。常见的排序算法非常多,比如猴子排序、睡眠排序、面条排序等。这里我们只学习下最常见、最经典的排序算法。 按照算法的时间复杂度,可以分为以下三类,我们对着分类去学习,更能加深记忆和对算法的掌握。 如何分析一个“排序算法”? 排序算法的执行效率 最好情况、最坏情况、平均情况时间复杂度 时间复杂度的系数、常数...原创 2020-03-28 23:01:37 · 329 阅读 · 0 评论 -
分布式Id生成-雪花算法(Java)
最近公司正好在做数据库迁移从oracle到mysql,因为之前oracle主键是使用的 SYS_GUID () 这个oracle提供的函数来生成全球唯一的标识符(原始值)由16个字节组成。可是由于mysql默认使用的InnoDB存储引擎采用的聚簇索引,使用uuid对写性能有一定的影响。而且为了后续分库分表考虑,也不宜采用数据库自增,因此就考虑到需要使用一种可以支持分布式递增且全局唯一的Id生成算...原创 2020-01-17 16:39:48 · 1719 阅读 · 0 评论 -
leetcode189-旋转数组
前言 2019.10.27日打卡 算法,即解决问题的方法。同一个问题,使用不同的算法,虽然得到的结果相同,但是耗费的时间和资源是不同的。这就需要我们学习算法,找出哪个算法更好。 题目 每天一道leetcode189. 旋转数组 分类: 数组 难度: 简单 题目链接: https://leetcode-cn.com/problems/rotate-array/ 题目描述 给定一个...原创 2019-10-27 16:26:22 · 910 阅读 · 0 评论 -
每日一道算法题-leetcode136-只出现一次的数字
前言 打卡第一天2019.10.26日打卡 算法,即解决问题的方法。同一个问题,使用不同的算法,虽然得到的结果相同,但是耗费的时间和资源是不同的。这就需要我们学习算法,找出哪个算法更好。 大家都知道,算法是在面试大厂时不可或缺的一环。 而作为普通程序员的我们在工作中大都不怎么接触算法,那么如果以后想要进入大厂工作,提升自己,就必须通过刻意的练习,掌握算法和数据结构,提高编程能力。 “好...原创 2019-10-27 00:01:26 · 257 阅读 · 0 评论