hhcccchh
码龄17年
关注
提问 私信
  • 博客:151,758
    151,758
    总访问量
  • 30
    原创
  • 2,138,774
    排名
  • 11
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖北省
  • 加入CSDN时间: 2008-01-05
博客简介:

hhcccchh的专栏

查看详细资料
个人成就
  • 获得19次点赞
  • 内容获得11次评论
  • 获得96次收藏
创作历程
  • 14篇
    2021年
  • 27篇
    2020年
  • 42篇
    2019年
  • 13篇
    2015年
  • 31篇
    2014年
  • 13篇
    2013年
成就勋章
TA的专栏
  • 网课
    12篇
  • 曼哈顿计划
    50篇
  • PYTHON
    6篇
  • hadoop
    4篇
  • linux
    9篇
  • j2ee
    9篇
  • DB
    8篇
  • 面试
    8篇
  • 设计模式
    8篇
  • SPRING
    8篇
  • MAVEN
    4篇
  • 系统问题
    6篇
  • JAVA WEB
    1篇
  • GRADLE
    1篇
  • 书籍
    9篇
兴趣领域 设置
  • 数据结构与算法
    排序算法推荐算法
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

2021-05-30 排序优化:如何实现一个通用的、高性能的排序函数

今天,我会讲三种时间复杂度是 O(n) 的排序算法:桶排序、计数排序、基数排序。因为这些排序算法的时间复杂度是线性的,所以我们把这类排序算法叫作线性排序(Linear sort)。之所以能做到线性的时间复杂度,主要原因是,这三个算法是非基于比较的排序算法,都不涉及元素之间的比较操作。 这几种排序算法理解起来都不难,时间、空间复杂度分析起来也很简单,但是对要排序的数据要求很苛刻,所以我们今天学习重点的是掌握这些排序算法的适用场景。 ...
转载
发布博客 2021.05.30 ·
177 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-05-25 JAVA线上故障排查全套路

1 线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连,然后依次jstack、jmap伺候,具体问题具体分析即可。 CPU 一般来讲我们首先会排查cpu方面的问题。cpu异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁gc以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导致的,可以使用j
转载
发布博客 2021.05.25 ·
299 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-05-25 线性排序:如何根据年龄给100万用户数据排序

今天,我会讲三种时间复杂度是 O(n) 的排序算法:桶排序、计数排序、基数排序。因为这些排序算法的时间复杂度是线性的,所以我们把这类排序算法叫作线性排序(Linear sort)。之所以能做到线性的时间复杂度,主要原因是,这三个算法是非基于比较的排序算法,都不涉及元素之间的比较操作。 ...
转载
发布博客 2021.05.30 ·
227 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-05-24 如何用快排思想在O(n)内查找第K大元素

今天,我讲两种时间复杂度为 O(nlogn) 的排序算法,归并排序和快速排序。这两种排序算法适合大规模的数据排序。 归并排序和快速排序都用到了分治思想,非常巧妙。我们可以借鉴这个思想,来解决非排序的问题,比如:如何在 O(n) 的时间复杂度内查找一个无序数组中的第 K 大元素? 归并排序的原理 归并排序的核心思想还是蛮简单的。如果要排序一个数组,我们先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了。 归并排序使用的就是分治思...
转载
发布博客 2021.05.24 ·
255 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-05-16 排序(上):为什么插入排序比冒泡排序更受欢迎?

如何分析一个“排序算法”? 排序算法的执行效率 排序算法的内存消耗 冒泡排序(Bubble Sort) 插入排序(Insertion Sort) 选择排序(Selection Sort)
转载
发布博客 2021.05.18 ·
141 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-05-15 递归:如何用三行代码找到“最终推荐人”

如何理解“递归”? 递归需要满足的三个条件 如何编写递归代码? 递归代码要警惕堆栈溢出 递归代码要警惕重复计算 怎么将递归代码改写为非递归代码? 如何找到“最终推荐人”? ...
转载
发布博客 2021.05.16 ·
102 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-05-12 09丨队列:队列在线程池等有限资源池中的应用

如何理解队列 顺序队列和链式队列
转载
发布博客 2021.05.15 ·
101 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-05-11 08丨栈:如何实现浏览器的前进和后退功能

栈的特点 栈是一种操作受限的“线性表”,只需要在一端操作插入和删除。先进后出,后进先出; 如何实现栈 栈主要包含两个操作,在栈顶插入一个数据,或者在栈顶删除一个数据; 栈在函数调用中的应用 支持动态扩容的顺序栈 栈在表达式中的应用 使用两个栈,一个存储操作数,一个存储运算符;数字直接入栈;当运算符入账,遇到栈顶运算符优先级别低于或者等于它的时候,就把前面两个数取出来执行运算,再把结果入栈; 栈在括号匹配中的应用 我们假设表达式中只包含三种括号..
转载
发布博客 2021.05.11 ·
209 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-05-10 07丨链表(下):如何轻松写出正确的链表代码?

技巧一:理解指针或引用的含义 技巧二:警惕指针丢失和内存泄漏 技巧三:利用哨兵简化实现难度 技巧四:重点留意边界条件处理 技巧五:举例画图,辅助思考 技巧六:多写多练,没有捷径 ...
转载
发布博客 2021.05.11 ·
119 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-05-09-链表(上):如何实现LRU缓存淘汰算法

链表的特点 通过指针将一组零散的内存块串联在一起;内存块称为链表的结点;为了将所有的结点联系起来,每个链表的结点除了存储数据之外,还需要记录链上下一个结点的地址,这个记录下个结点地址的指针叫后继指针; 单链表 双向链表 循环链表 双向循环链表 链表vs数组性能 如何实现lru缓存淘汰算法 如何判断一个字符串是回文字符串,如果这个字符串是链表存储的,时间空间复杂度如何 ...
转载
发布博客 2021.05.10 ·
104 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-05-09实战一(上):业务开发常用的基于贫血模型的MVC架构违背OOP吗

什么是贫血模型?什么是充血模型? 为什么说基于贫血模型的传统开发模式违反 OOP? 基于贫血模型的传统开发模式既然违反 OOP,那又为什么如此流行? 什么情况下我们应该考虑使用基于充血模型的 DDD 开发模式 ...
转载
发布博客 2021.05.09 ·
137 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021-05-08-数组:为什么很多编程语言中数组都从0开始编号?

数组:线性表 数组基本概念 数组的特点 数组和链表的区别 数组下表为什么从0开始
转载
发布博客 2021.05.09 ·
97 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

centos 8 steam docker install rabbitmq

查找镜像 带有可视化界面 [root@VM-0-15-centos ~]# docker search rabbitmq:management NAME DESCRIPTION STARS OFFICIAL AUTOMATED macintoshplus/rabbitmq-management Based on.
转载
发布博客 2021.03.30 ·
216 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

centos8 stream install docker

使用DNF添加并启用官方Docker CE存储库。在终端窗口中输入以下命令: 安装containerd.io包手动 安装最新版docer ce 启用docker 添加当前用户加入docker用户组 关闭防火墙 重新登录,可以使用了 sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install
原创
发布博客 2021.03.30 ·
1223 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

20200808 linux搭建zookeeper集群

搭建zookeeper集群(一主两从) zk启动依赖java的JDK,所以要先安装JDK 不会安装JDK的可以看这https://www.jianshu.com/p/ea5c72b273d7教程,安装完成JDK后 下载zk的tar包并使用winSCP上传到3台linux服务器 https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 开始搭建zookeeper集群(一主两从) 我启动了3台linux服务器,IP分别是 192.168.79.1
转载
发布博客 2020.08.08 ·
428 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

20200607 spring常见面试

面试题1. Spring中bean的循环依赖怎么解决?(一). 首先说一下什么是Spring的循环依赖: 其实就是在进行getBean的时候,A对象中去依赖B对象,而B对象又依赖C对象,但是对象C又去依赖A对象,结果就造成A、B、C三个对象都不能完成实例化,出现了循环依赖。就会出现死循环,最终导致内存溢出的错误。 (二).如何去解决Spring的循环依赖呢? 1.先知道什么是Spring的“三级缓存”:就是下面的三个大的Map对象,因为Spring中的循环依赖的理论基础其实是基于java中的值传递的,
转载
发布博客 2020.06.07 ·
265 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

20200607 MYSQL基础面试

  事务四大特性(ACID)原子性、一致性、隔离性、持久性?   原子性(Atomicity)   原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。   一致性(Consistency)   事务开始前和结束后,数据库的完整性约束没有被破坏。比如A向B转账,不可能A扣了钱,B却没收到。   隔离性(Isolation)   隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开
转载
发布博客 2020.06.07 ·
192 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

20200512 JVM监控命令详解(转)

JVM监控命令基本就是jps、jstack、jmap、jhat、jstat几个命令的使用就可以了 JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lo...
转载
发布博客 2020.05.12 ·
258 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

20200512 10分钟看懂, Java NIO 底层原理

1.1. JavaIO读写原理 无论是Socket的读写还是文件的读写,在Java层面的应用开发或者是linux系统底层开发,都属于输入input和输出output的处理,简称为IO读写。在原理上和处理流程上,都是一致的。区别在于参数的不同。 用户程序进行IO的读写,基本上会用到read&write两大系统调用。可能不同操作系统,名称不完全一样,但是功能是一样的。 先强调一个基础知识:read系统调用,并不是把数据直接从物理设备,读数据到内存。write系统调用,也不是直接把数据,写入到物理.
转载
发布博客 2020.05.12 ·
207 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

20200510 redission入门

我们现在看到的就是redission官方网站 https://redisson.org 首页可以看出来,redisson可以实现很多东西,在redisson的基础上,redisson做了超多的封装,我们看一下,例如说 Spring Cache,TomcatSession,Spring Session,可排序的Set,还有呢Sortedsort,下面还有各种队列,包括这种双端 队列,还有map,这些是数据结构,下面就是各种锁,读写锁,这里面的锁还包含,可重入锁,还有CountDownLant...
转载
发布博客 2020.05.10 ·
255 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多