随笔分类 -  数据结构与算法

摘要:1)前提:字符串以单个字符的形式存储在单链表中。2)遍历链表,判断字符个数是否为奇数,若为偶数,则不是。3)将链表中的字符倒序存储一份在另一个链表中。4)同步遍历2个链表,比较对应的字符是否相等,若相等,则是水仙花字串,否则,不是。 样例: 上海自来水来自海上 阅读全文
posted @ 2021-07-26 14:45 我若亦如风 阅读(106) 评论(0) 推荐(0) 编辑
摘要:个人觉得,记数排序其实是桶排序的一直特殊情况。 当要排序当数据是n,所处的数据范围不大的时候,最大值为k,我们就可以把数据划分为k个桶。每个桶内大数据都相同,省去了桶内快排的时间。 我们拿高考查分系统来说明。我们查分时,系统会现实我们的成绩以及所在省的排名。如果所在省有100万考生,如何通过成绩快速 阅读全文
posted @ 2020-12-01 17:42 我若亦如风 阅读(110) 评论(0) 推荐(0) 编辑
摘要:课前学习: 什么是线性排序 ?我们把时间复杂度是O(n)的排序算法叫作线性排序。因为这些排序算法的时间复杂度是线性的。 桶排序(Bucket sort) 核心思想就是将要排序的数据分到几个有序的桶里,每个桶里的数据在单独进行排序。 桶排序的时间复杂度为什么是O(n)呢?我们来分析一下。 如果需要排序 阅读全文
posted @ 2020-12-01 16:38 我若亦如风 阅读(212) 评论(0) 推荐(0) 编辑
摘要:sort是js内置的排序方法,参数为一个函数 阅读全文
posted @ 2019-11-04 10:59 我若亦如风 阅读(161) 评论(0) 推荐(0) 编辑
摘要:ES6 set去重 使用 for of 去重(On) 阅读全文
posted @ 2019-10-31 15:36 我若亦如风 阅读(224) 评论(0) 推荐(0) 编辑
摘要:一、基本概念: 1、什么是缓存? 缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非广泛的应用,比如常见的CPU缓存、数据库缓存、浏览器缓存等等。 2、为什么使用缓存?即缓存的特点缓存的大小是有限的,当缓存被用满时,哪些数据应该被清理出去,哪些数据应该被保留?就需要用到缓存淘汰策略。 阅读全文
posted @ 2018-12-22 15:59 我若亦如风 阅读(407) 评论(0) 推荐(0) 编辑
摘要:常见的策略有三种: 先进先出策略 FIFO(First In,First Out) 最少使用策略 LFU(Least Frequently Used) 最近最少使用策略 LRU(Least Recently Used) 对比数组和链表: 数组:是一块连续的存储单元 链表:是通过“指针”将一组零散的内 阅读全文
posted @ 2018-12-22 15:42 我若亦如风 阅读(220) 评论(0) 推荐(0) 编辑