有裂痕的石头
码龄5年
关注
提问 私信
  • 博客:118,616
    118,616
    总访问量
  • 74
    原创
  • 1,646,902
    排名
  • 949
    粉丝

个人简介:埋头苦干,未来可期

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:甘肃省
  • 加入CSDN时间: 2020-01-19
博客简介:

qq_46209845的博客

查看详细资料
个人成就
  • 获得410次点赞
  • 内容获得440次评论
  • 获得491次收藏
创作历程
  • 3篇
    2022年
  • 67篇
    2021年
  • 4篇
    2020年
成就勋章
TA的专栏
  • 重生之JavaSE
  • MySQL
    1篇
  • 没用的东西
    5篇
  • JavaSE
    26篇
  • 数据结构与算法
    32篇
  • Python
    1篇
  • JVM
    6篇
  • 笔记
    31篇
  • C语言
    4篇
创作活动更多

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

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

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

MySQL必知必会,我的MySql复习宝典

声明:本篇博客是学习B站韩顺平老师mysql课程的笔记目录数据库基础知识使用命令行窗口连接MySQL数据库数据库三层结构 - 破除MySQL神秘SQL语句SQL语句分类数据库相关操作查看、删除数据库备份恢复数据库创建和删除表MySQL常用数据类型(列类型)定义无符号的bit的使用小数的使用字符串的基本使用日期类型的基本使用创建练习表修改表数据库C(create)R(read)U(update)D(delete)Insert 语句update语句Delete 语句Select 语句使用表达式对查询的列进行计
原创
发布博客 2022.03.18 ·
3004 阅读 ·
6 点赞 ·
6 评论 ·
10 收藏

原码-补码-反码

二进制的最高位是符号位:0表示正数,1表示负数。正数的原码,反码,补码都一样。负数的反码 = 它的原码符号位不变,其他未取反。负数的补码 = 它的反码 + 1,即负数的反码 = 负数的补码 - 10的反码,补码都是0java没有无符号数,换言之,java中的数又是有符号的在计算机运算的时候,都是以补码的方式来运算的。当我们看运算结果的时候,要看他的原码。...
原创
发布博客 2022.03.10 ·
335 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Java基本数据类型和String类型的转化

基本数据类型转String类型只需要 + ""即可,如下public static void main(String[] args) { int n1 = 100; float n2 = 1.1f; double n3 = 3.4; boolean b1 = true; String str1 = n1 + ""; String str2 = n2 + ""; String str3 = n3
原创
发布博客 2022.03.10 ·
531 阅读 ·
1 点赞 ·
2 评论 ·
1 收藏

异或的魅力

异或(^)作为一个位运算符,它的运算速度是很快的,它的运算规则是将两个数据的二进制数去一一比较,结果是当对应两个二进制位的数相同为0,不同为1,即:同时异或运算还满足交换律和结合律,这些就使得两个相同的数因为二进制每一位都对应一模一样,所以当两个相同的数在做异或运算时结果为0,即 a ^ a = 0;因为异或运算满足交换律,所以 a ^ b ^ a = a ^ a ^ b = 0 ^ b,因为b有1的位,而0全都是0位,所以 0 ^ b = b,即0异或任何数都等于这个数本身。当有一堆数在异或时:
原创
发布博客 2021.11.08 ·
334 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

更高效地刷OJ——Java中常用的排序方法,Array.sort(),Arrays.parallelSort(), Collections.sort()

对于几大传统的排序算法我在前面博客中已经介绍过了,如果有想要了解的同学可以去看这篇博客八大排序:冒泡排序,选择排序,插入排序,堆排序,希尔排序,归并排序,计数排序但是我们在刷题过程中如果题目中没有对排序算法做特别要求,排序只是当前题目的一个小过程的话我们大可不必自己实现以便排序算法,因为Java中已经提供了几个对数据做排序的方法。文章目录用Array.sort()进行排序Arrays.parallelSort() 是什么 和 Array.sort()有什么区别用 Collections.sort()进行排
原创
发布博客 2021.09.12 ·
925 阅读 ·
44 点赞 ·
50 评论 ·
36 收藏

模拟实现HashMap

为了方便实现,突出重点,将key指定为String类型,将Value指定位Integer类。在实际中,如果Key的类型为自己的实现类,那么必须重写该类的hashCode()和equals()两个方法,重写hashCode()方法是因为在找key对应的下标时需要调用hashCode()方法,重写equals()方法是因为两个相同对象的哈希值必须相同,程序怎么知道哪两个对象相同,就是通过equals方法。对于还不了解哈希表的同学建议先去看上一篇博客哈希表(HashTable),哈希冲突的避免、解决。下面开
原创
发布博客 2021.09.11 ·
275 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

哈希表(HashTable),哈希冲突的避免、解决

文章目录什么是哈希表哈希表概念哈希冲突哈希冲突概念解决冲突闭散列闭散列平均查找次数的问题开散列/哈希桶冲突严重时的解决办法避免冲突哈希函数设计常见的哈希函数负载因子调节什么是哈希表先举一个很常见的例子:我们有一个衣柜这是一个杂乱无章的衣柜,里面放了四季的衣服,每当要去找一件合适的衣服去穿的时候,要翻箱倒柜麻烦半天,为了解决这个问题,我们买了四个柜子,规定它们分别存放春夏秋冬四季的衣服:从此之后找衣服就方便了很多,什么季节去哪个衣柜找就能找到合适的衣服,这个例子背后就是哈希表的原理。哈希表概念
原创
发布博客 2021.09.11 ·
2819 阅读 ·
19 点赞 ·
24 评论 ·
29 收藏

Java中的Map

Map的介绍Map和Set一样是一种专门用来进行搜索的数据结构,和Set不同的是Map中存的是Key-Value键值对,什么是键值对呢?举两个例子:统计文件中每个单词出现的次数,统计结果是每个单词都有与其对应的次数:这里的key就是单词,value就是出现的次数。词典中每个单词就是key,单词对应的意思是value。Java中的Map是一个接口,该类不同于Set,该类没有继承字Collection。Map中的key不能重复,value可以重复。Map的常用方法:返回值方法
原创
发布博客 2021.09.10 ·
293 阅读 ·
3 点赞 ·
2 评论 ·
1 收藏

Java中的Set

Set可以被认为是一个集合,集合内部是同类型的元素,他们之间没有先后顺序,但是不允许重复!!!Set中常用的方法有以下几个:返回值方法booleanadd( ) 向集合中添加元素无clear( ) 去掉集合中所有的元素booleancontains( ) 判断集合中是否包含某一个元素booleanisEmpty( ) 判断集合是否为空Iteratoriterator( ) 主要用于递归集合,返回一个It
原创
发布博客 2021.09.10 ·
8143 阅读 ·
11 点赞 ·
16 评论 ·
27 收藏

二叉搜索树的思想,以及增删查改的实现

目录搜索树的概念查找操作插入操作删除操作改的操作搜索树的概念二叉搜索树又被称为排序树,它或者是一颗空树,或者是一棵具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树下图就是一棵二叉搜索树,可以对应上面性质加深理解:查找操作实现思想:实现代码:// O(树的高度) public boolean find(int key) { Node curren
原创
发布博客 2021.09.07 ·
823 阅读 ·
13 点赞 ·
21 评论 ·
7 收藏

❤️万字总结八大排序:冒泡排序,选择排序,插入排序,堆排序,希尔排序,归并排序,计数排序❤️

目录主要排序算法性能对比冒泡排序选择排序插入排序堆排序希尔排序快速排序Hoare版挖坑版前后指针法归并排序计数排序主要排序算法性能对比冒泡排序各位同学接触最早的排序算法应该就是冒泡排序了,他的过程如下图所示:拿图中升序举例他每次小循环都会从0开始在遍历的过程中将遇到的最大的数像冒泡泡一样一路冒到有序区间,一次大循环让有序区间增加一,大循环执行完毕全部区间就有序了。下面是它的代码:import java.util.Arrays;public class BubbleSort { //升
原创
发布博客 2021.09.06 ·
651 阅读 ·
9 点赞 ·
21 评论 ·
16 收藏

归并排序(Merge Sort)思想,代码实现

归并排序是分治算法一个非常典型的例子,归并排序的思想是将待排序序列递归分为左右两个子序列,递归到子序列只有一个数的时候,停下来,这就是分治算法的分的意思,将问题化简,当子序列只有一个元素的时候是不是可以认为这个序列为有序序列了,然后再将左右有序子序列通过递归合并起来,最终让整个序列有序,这是分治算法治的过程,下面我们通过图片来理解这个过程:通过动图理解就是:线面看代码:public class MergeSort { public static void mergeSort(long[]
原创
发布博客 2021.09.05 ·
758 阅读 ·
13 点赞 ·
20 评论 ·
10 收藏

快速排序思路(前后指针版),代码实现

快速排序的前后指针法相比于Hoare版和挖坑版在思路上有点不同,前后指针版的思路是引入两个指针cur和prev,在开始的时候先规定一个基准值val(一般为最右边或者最左边的那个数据),然后让两个指针指向基准值的下一个数,开始下面循环:若cur指向的内容小于key,则prev先向后移动一位,然后交换prev和cur指向的数,然后cur++;如果cur指向的内容大于val,则cur++。直到cur走完整个序列,此时为了让基准值在中间,只需val和prev交换单次排序就完成了。下面是单次排序的动图:在循环
原创
发布博客 2021.09.04 ·
531 阅读 ·
5 点赞 ·
4 评论 ·
2 收藏

快速排序思路(挖坑版),代码实现

挖坑版是在Hoare版的基础上做了改造,答题思路还是和Hoare版一样。挖坑版partition单次过程:选一个基准值,一般选最左或者最右面,把该基准值存在val变量中,因为值存到了变量里,所以可以视为这个位置能放其他值了。定义一个left和一个right引用,left从序列左向右走,right相反(如果基准值在左边则right先走,如果基准值在右边,left先走)走的过程中,如果right遇到小于val的数,则把个数放在坑中,并在次形成坑位,然后left向右走,如果遇到大于val的数,则将值填入
原创
发布博客 2021.09.03 ·
666 阅读 ·
9 点赞 ·
10 评论 ·
9 收藏

确定不进来看看?分享一个插件,让敲代码不再枯燥,activate-power-mode

已经支持很多IDE了:https://github.com/codeinthedark/awesome-power-mode因为我用的是IDEA,所以主要来介绍一下IDEA的安装流程:打开这个网址https://github.com/ViceFantasyPlace/activate-power-mode/releases,然后在IDEA中选Preferences -> Plugins -> Install pliugin form disk -> 找到刚才下载的jar包->.
原创
发布博客 2021.09.02 ·
154 阅读 ·
6 点赞 ·
12 评论 ·
2 收藏

快速排序思路(Hoare版),代码实现

快速排序是一种相对比较快的排序,它的思想为:选取待排序元素序列中的一个元素作为基准值,然后(以升序为例)比基准值小的元素放在基准值左边,比基准值大的元素放在基准值右边,这样的话,原先待排序序列就被分为了左子序列,右子序列,基准值,三个部分,,然后把左子序列看做新的待排序序列进行上述操作,左子序列又被分为新的左右子序列(递归的思想),当左子序列处理完之后再去处理右子序列,最后着呢个待排序序列就有序了。下面是动图演示过程:public static void quickSort(int[] array)
原创
发布博客 2021.09.01 ·
368 阅读 ·
8 点赞 ·
13 评论 ·
5 收藏

安居客西安房源爬取 + pyecharts 数据展示

第一步是数据爬取:import xlwtfrom bs4 import BeautifulSoupfrom selenium import webdriverimport time,randomfrom selenium.webdriver import ChromeOptionsdef main(): baseurl = "https://xa.fang.anjuke.com/loupan/all/p" datalist = getData(baseurl) sav
原创
发布博客 2021.08.31 ·
861 阅读 ·
8 点赞 ·
15 评论 ·
18 收藏

希尔排序(Shell Sort)

希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。上面的这段叙述来自百度百科,我们可以知道希尔排序是插入排序的改进版,如果插入排序还没有搞清楚的话,建议先去看这篇博客补一补:都是❤️两层循环❤️的冒泡排序,选择排序,插入排序该怎么区分。这里我们也大致在对插入排序做个复习。插入排序将第一个数(也可.
原创
发布博客 2021.08.30 ·
605 阅读 ·
8 点赞 ·
8 评论 ·
5 收藏

堆排序,为什么升序排列要建大堆,降序排列要建小堆

堆排序中用到了建立大小堆和向下调整的内容,对这些内容有些不了解的同学可以去补一补专门写堆的博客,方便更好的理解堆排序数据结构之堆(Heap),堆的相关操作,用堆模拟优先级队列。如果把待排序序列分为未排序区间和有序区间,堆排序大的思想是每次选一个数放到有序区间,没经历一个循环有序区间就会加一,无序区间减一,循环结束序列也就有序了,像这样:可以发现堆排序的思路和选择排序很像,没错,思路确实一样,只不过选择排序每次要遍历无序区间去找当前无序区间的最大值(升序找最大值,降序找最小值),而堆排序呢是吧无序区间
原创
发布博客 2021.08.30 ·
3969 阅读 ·
19 点赞 ·
14 评论 ·
28 收藏

都是❤️两层循环❤️的冒泡排序,选择排序,插入排序该怎么区分

目录冒泡排序选择排序插入排序这三个排序都有两层循环这是他们表面的特点,我把外部循环叫大循环,内部循环叫小循环,他们算法根本思想都有相同点,就是将待排序序列分为无序区间和有序区间,每过一次大循环都能让有序区间增加一个相应的无序区间减少一个:科普一下这种每次通过相同操作让问题规模减小的算法称为减治算法,现在我们清楚了他们的底层思想,再来分别讨论以作区分。冒泡排序各位同学接触最早的排序算法应该就是冒泡排序了,他的过程如下图所示:拿图中升序举例他每次小循环都会从0开始在遍历的过程中将遇到的最大的数像冒
原创
发布博客 2021.08.29 ·
382 阅读 ·
11 点赞 ·
32 评论 ·
9 收藏
加载更多