自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法之归并排序

这个算法最早出现在1945年,由约翰·冯·诺伊曼(John von Neumann)(又一个天才,现代计算机之父,冯·诺依曼结构、普林斯顿结构)首次提出。归并排序的基本思路是先将待排序数组递归地拆分成两个子数组,然后对每个子数组进行排序,最后将两个有序子数组合并成一个有序数组。虽然归并排序看起来比较复杂,但是只要理解了基本思路,实现起来并不困难,而且它还是一个非常有趣的算法。归并排序的代码实现较为简单,但要注意关于递归函数和合并函数的实现。归并排序是一种不需要过多研究的算法,适合于所有的排序场景。

2024-09-12 08:52:41 432

原创 算法之插入排序

插入排序就像是打扑克牌,从牌堆顶取一张牌,找到合适的位置插入到已有牌的顺序中,并不断重复这一步骤直到所有的牌都被插入到合适的位置,最终使得整副牌有序。由于插入排序的最好时间复杂度与最坏时间复杂度都接近O(n^2),所以插入排序适用于数据规模不大的场合,如果数据规模很大,通常使用其他算法。插入排序的时间复杂度在最好的情况下为O(n),在最坏的情况下为O(n^2),平均时间复杂度为O(n^2)。插入排序的优势在于它的性能表现在已经有序的序列上比冒泡排序、选择排序两种算法要好。

2024-09-12 08:50:44 524

原创 十大排序之选择排序

我们分析选择排序中的每一步,再将每一步的时间复杂度加起来,最后得到的就是选择排序的时间复杂度。计算选择排序算法的时间复杂度,通常是通过分析算法中每一步的执行次数来确定的。

2024-09-11 08:07:22 268

原创 前端常见算法题

时间复杂度的计算并不是计算程序具体运行的时间,而是算法执行语句的次数。随着n的不断增大,时间复杂度不断增大,算法花费时间越多。常数阶O(1)对数阶O(log2 n)线性阶O(n)线性对数阶O(n log2 n)平方阶O(n^2)立方阶O(n^3)k次方阶O(n^K)指数阶O(2^n)选取相对增长最高的项最高项系数是都化为1若是常数的话用O(1)表示举个例子:如f(n)=3*n^4+3n+300 则 O(n)=n^4通常我们计算时间复杂度都是计算最坏情况。

2024-09-10 19:24:20 284

原创 性能分析四板斧

比如设置了onAreaChange,就算回调中没有任何逻辑,系统也会在C++侧去计算该组件的大小和位置变化情况,并且把结果回调到TS侧,额外消耗了系统开销。应该避免在onScroll、onAreaChange等系统高频的回调接口中进行冗余和耗时操作,这些接口在系统的每一帧绘制中都会执行回调操作,因此在这些接口中进行冗余和耗时操作会大量消耗系统资源,影响应用运行性能。推荐在Release版本中,尽量删除所有Trace信息,删除Debug日志,减少额外的系统开销。

2024-09-09 20:59:32 212

原创 性能分析四板斧

开发者封装一个数据结构类用于进行状态变量关联时,应该避免过多的成员变量关联大量ArkUI组件,这种情况下,当这个大对象的一个成员变量更新时,会导致所有关联这个大对象的组件都同时进行刷新,造成不必要的性能损耗,从而影响帧率。在父子组件关联的场景下,@Provide+@Consume开销要大于@State+@Prop/@Link,因此在该场景下推荐使用@State+@Prop/@Link的组合。),控制状态变量关联组件数量上限,控制对象级状态变量的成员变量关联组件数,减少系统的组件渲染负载,提升应用流畅度。

2024-09-09 20:58:38 548

原创 性能分析四板斧

复杂布局提供了场景化的能力(详细介绍可参考文章:优化布局性能使用Flex构建弹性布局;List既具备线性布局的特点,同时支持懒加载和滑动的能力;Grid/GridItem提供了宫格布局的能力,同时也支持懒加载和滑动能力;RelativeContainer是一种相对布局,通过描述各个内容组件间相互关系来指导内容元素的布局过程,可从横纵两个方面进行布局描述,是一种二维布局算法;

2024-09-09 20:57:57 487

原创 性能分析四板斧

在开发HarmonyOS NEXT应用时,优化应用性能是至关重要的。本文将介绍应用开发过程中常见的一些性能问题,并提供相应的解决方案,配合相关参考示例,帮助开发者解决大部分性能问题。我们把应用性能分析的方法划分为了,下面将介绍如何使用性能分析四板斧,解决应用开发过程中的性能问题。

2024-09-09 20:55:34 708

原创 冒泡排序理解

在冒泡排序中,每次比较两个相邻的元素,并交换它们的位置,如果左边的元素比右边的元素大,则交换它们的位置。这样的比较和交换的过程可以用一个循环实现。由此可见,冒泡排序的时间复杂度主要取决于数据的初始顺序,最坏情况下时间复杂度是O(n^2),不适用于大规模数据的排序。这种算法是稳定的,即相等元素的相对位置不会发生变化。因此,冒泡排序适用于数据规模小的场景。冒泡排序是一种简单的排序方法。

2024-09-09 16:23:30 780

原创 【什么是移动开发?】

--------------原生App开发: iOS, Android, HarmonyOS。项目都要打包: iOS-ipa包, Android-apk包, HarmonyOS-app包。App/基于宿主环境的应用程序(小程序...)/M站(基于浏览器运行的应用)iOS: Xcode(开发工具), Object-C/Swift(开发语言)-------------混合App开发模式。------------跨平台App开发模式。开发运行在手机设备上的应用。一套代码发布到多个平台。

2024-09-08 20:05:00 341

空空如也

空空如也

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

TA关注的人

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