自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 LRU缓存淘汰算法

1.LRU算法介绍缓存满了需要删除一些缓存,LRU(Least Recently Used)就是一种常用的策略,表示缓存数据的重要程度与最后一次使用时间有关,缓存满了,就先删除很久没有用过的缓存数据。2.算法要求leetcode例题https://leetcode-cn.com/problems/lru-cache/初始化构造函数需要接受一个capacity参数作为缓存最大容量。put(key,val)方法存入键值对。get(key,val)方法获取key对应的val,不存在则返回-1。

2021-12-06 18:13:09 438

原创 十分钟学算法-堆排序

//6.堆排序(HeapSort)/*利用堆设计的排序算法。堆是一个近似完全二叉树的结构,且满足子节点键值总是小于/大于它的父节点6.1算法描述1.构造初始堆(一般升序大顶堆,降序小顶堆)2.将堆顶元素与末尾元素进行交换,使末尾元素最大。size--3.重复步骤1,2。反复执行建堆+交换步骤,直到整个序列有序。6.2最好||平均||最坏时间复杂度O(nlogn)//以2为底不稳定排序算法6.3大根...

2021-12-04 00:41:22 523

原创 十分钟学算法-选择排序

//5.选择排序(SelectionSort)/*最简单直观的排序算法,为知识完整性而复习。原理:在未排序序列中找到最大/小元素,存放到该排序序列起始位置。然后,再从剩余未排序元素中继续寻找最大/小元素,放到已排序序列末尾。以此类推,直到所有元素均排序完毕5.1算法描述1.找min/max下标,两层循环2.外层循环i从0开始,表示已排序元素3.内层循环在[i+1,n]区间找最值,swap(nums[min],nums...

2021-12-04 00:37:53 91

原创 十分钟学算法-快速排序

//2.快速排序(QuickSort)/*本质:冒泡排序基础上的递归分治法。2.1算法描述1.数列挑出一元素(“基准”pivot)2.分区操作(partition):所有比基准小的放在基准前面;比基准大的放后面3.递归地(recursive)把小于基准元素和大于基准元素的子数列排序2.2最好||平均时间复杂度O(nlogn)//以2为底不稳定排序算法*//*分组操作对一组区间为[m,n]数据进行分组操作...

2021-12-01 14:45:16 778

原创 十分钟学算法-冒泡排序

//1.冒泡排序(BubbleSort)/*1.1算法描述1.相邻元素a,b;ifa>b;swap(a,b);2.for(开始;结尾;每一对)//一层循环3.除最后一个,对所有一对元素重复以上步骤//二层循环4.重复步骤1~3,直到排序完成。1.2时间复杂度O(n²)稳定排序算法*///基础版/*理解:实际上每次外层循环会把最大的移到最后.(即最大数像冒泡一样上浮)二层循环去除排好的一位,再...

2021-12-01 13:27:20 76

原创 flutter03-初识dart_面向对象

flutter02-初识dart_基本语法https://blog.csdn.net/qq_44985236/article/details/121166993?spm=1001.2014.3001.5502在学习了基本语法后,我们学习一下dart中的面向对象。1.类、对象、构造函数创建TWPerson类如下/* 类和对象* 使用class关键字声明一个类* 可以使用new+构造函数创建对象* 所有对象都继承Object类* 同一个文件中不存在私有化* *//* Dart.

2021-11-08 16:10:27 2120

原创 flutter02-初识Dart_基础语法

1.创建一个flutter项目记得勾选上web,不开手机模拟器,我们调试会方便一点。一开始会有一个工程的基本代码,你可以跑一下看一下效果。主要代码就是在lib里,我们把main.dart里的内容清空,接下来讲一下Dart的基本语法知识。2.var,final ,constvoid demo1(){ // 1.var修饰常量变量 // 使用var声明1个变量,可以赋值不同的类型 // var声明的变量如果没有初始化,则值为nil var a; pr...

2021-11-05 17:44:56 1595

原创 flutter01-flutter环境配置(以笔者Mac为例)

1.安装lutter1.1 安装flutter SDKflutter 官网https://flutter.dev/点击右上角getstarted笔者为Mac系统,以Mac为例:1.2 解压压缩包Mac可以选择放在放在这里的好处是使用这台Mac机子的所有用户都可以使用flutter,但是由于是系统文件夹,万一更新时或者其它情况,获取不到权限,会操作失败。也可以放在自己用户的目录下,笔者选择放在了自己用户的目录下。放在自己家目录下的问题就是如果是多人...

2021-11-05 17:07:17 1948

原创 iOS底层代码探索004-由cache_t分析调用方法的缓存机制

1.前言在003-类的底层探索中,我们研究了类里的bits里的内容。superclass很明显是一个8字节的指向父类的指针。那么cache里面存储的是什么呢?今天,就让我们来研究一下cache_t。首先计算偏移量=isa的大小+superclass的大小=8+8=16字节=0x102.cache的基本数据结构查看cache_t源码struct cache_t {private: explicit_atomic<uintptr_t...

2021-07-23 17:51:00 199

原创 iOS底层代码探索003-类的底层探索后续

1.概念普及在阅读本篇博客前,需要了解:建议阅读博客:iOS底层代码探索003-类的底层探索1.1 isa走位与类继承关系图1.2 Clean/Dirty MemoryDirty memory:在进程运行时会发生更改的内存。Clean memory:加载后不会发生更改的内存。ro属于clean memory,在编辑时及确定的内存空间,只读,加载后不会发生改变的内存空间,包括类名称、方法、协议和实例变量的信息; rw的数据空间属于dirty memory,rw是运行时的结构.

2021-06-28 15:49:27 132

原创 iOS底层代码探索003-类的底层探索

1.环境准备版本为12.5的Xcode的编译器Objc debug源代码配置可以参考这篇博客https://juejin.cn/post/68449039591617331332.问题抛出

2021-06-20 14:52:40 296

原创 iOS底层代码探索002-类对象的本质与内存对齐

1.环境准备版本为12.5的Xcode的编译器2.问题抛出先创建一个LGPerson类。

2021-06-09 13:33:58 314 2

原创 iOS底层代码探索001-alloc到底做了什么?

1.环境准备版本为12.5的Xcode的编译器Objc debug源代码

2021-06-07 17:54:17 264 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除