
数据结构与算法
数据结构知识
神韵499
记录、创造与成就感也许是我写博客的一个原因。当然,转载也是我对知识存储的渴望,我对别人的知识点的赞同,这也是一个原因。但是,每天早上起来在自己博客里回味、每天早上在博客海洋里进步,每天在过去的知识里又学到了新的知识,有了新的认识。这才是我写博客最大的原因
展开
-
滑动窗口限流
大家好,我是神韵,是一个技术&生活博主。出文章目的主要是两个,一是好记忆不如烂笔头,记录总结中提高自己。二是希望我的文章可以帮到大家。欢迎大家留言讨论,你们的行动将是我无限的动力。可以看到限流在38分46秒时开始,在39分04秒时达到了10个请求,所以后面都是被限流了false,直到39分40多秒才有新的请求进来,所以可以看到39分40秒是true。滑动窗口限流,一分钟限流10次请求,代码带注释。本篇主题是:滑动窗口限流。原创 2023-10-27 14:49:34 · 262 阅读 · 0 评论 -
选择排序
一、选择排序(ChooseSort)每次选择一个数,与全部数分别比较,确定出最小值的坐标,然后与选择的数进行交换。算法不稳定。选择排序的时间复杂度为O(n^2),空间复杂度为O(1)。最好最坏也就是平均是O(n^2)二、图解每次记录最小值的坐标,然后与选择的数进行交换三、算法分析步骤:1、需要排序的数组2、第一次for循环,n-1次选择数3...原创 2019-12-12 09:44:24 · 258 阅读 · 0 评论 -
插入排序
一、插入排序(InsertSort)插入排序从第二个数开始,拿出第二个数进行向前插入排序,一直到最后一个数向前做插入排序。算法稳定。插入排序的时间复杂度为O(n^2),空间复杂度为O(1)。最好的时间复杂度是O(n),最坏也就是平均是O(n^2)二、图解对于一串数字(3,5,2,1,4,10)进行插入从小到大排序,如下图演示三、算法分析 /...原创 2019-12-09 19:49:16 · 15020 阅读 · 12 评论 -
冒泡排序优化
优化优化:设置标志:isSort=true,当有序时,第一趟就结束排序冒泡排序:https://blog.youkuaiyun.com/qq_41055045/article/details/90720815package com.arithmetic.sort;import java.lang.reflect.Method;import java.util.Arrays;/** *...原创 2019-12-09 19:14:08 · 262 阅读 · 0 评论 -
算法计划书
算法计划书(待整理)一、排序算法冒泡算法、快速排序、堆排序、希尔排序、归并排序、选择排序、插入排序、计数排序、桶排序二、查找算法顺序查找、折半查找(二分查找(已经有序))、插值插值、斐波那契查找三、二叉树深度优先遍历 先序遍历 中序遍历 后序遍历 广度优先遍历四、算法应用待续......原创 2019-11-09 10:36:02 · 668 阅读 · 0 评论 -
算法之时间复杂度及空间复杂度
一、介绍时间复杂度,引入百度的解释时间频度一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。在刚才提...原创 2019-06-01 19:48:45 · 969 阅读 · 0 评论 -
冒泡排序
一、冒泡排序(DubbleSort)这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序(数组右端)或降序排列(数组左端)),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。冒泡排序就是把小的元素往前调或者把大的元素往后调,相同情况下它是不会动位置的,所以它是稳定的排序算法。冒泡排序的时间复杂度为O(n^2)二、图解对于一串数字(...原创 2019-05-31 18:32:56 · 215 阅读 · 0 评论 -
HashMap源码重点分析
目录一、为啥要使用数组+链表+红黑树的结构二、哈希算法及put过程部分分析三、哈希扩容四、死锁发生一、为啥要使用数组+链表+红黑树的结构数组+链表(jdk1.8之前) 数组+链表+红黑树(红黑树是jdk1.8引进,当链表长度 >= 8即转为红黑树,这里具体不研究红黑树)数据结构特点及为啥使用这种结构数组:查找非常快。 链表:增加/删除非常快。查找效率不高。...原创 2019-07-11 11:39:49 · 343 阅读 · 5 评论 -
哈希表
一、概念引用百度的话,对散列表解释哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈...原创 2019-05-30 17:25:02 · 172 阅读 · 0 评论