- LiteOS内核源码分析系列七 互斥锁Mutex多任务环境下会存在多个任务访问同一公共资源的场景,而有些公共资源是非共享的临界资源,只能被独占使用。LiteOS使用互斥锁来避免这种冲突,互斥锁是一种特殊的二值性信号量,用于实现对临界资源的独占式处理。另外,互斥锁可以解决信号量存在的优先级翻转问题。用互斥锁处理临界资源的同步访问时,如果有任务访问该资源,则互斥锁为加锁状态。此时其他任务如果想... LiteOS内核源码分析系列七 互斥锁Mutex多任务环境下会存在多个任务访问同一公共资源的场景,而有些公共资源是非共享的临界资源,只能被独占使用。LiteOS使用互斥锁来避免这种冲突,互斥锁是一种特殊的二值性信号量,用于实现对临界资源的独占式处理。另外,互斥锁可以解决信号量存在的优先级翻转问题。用互斥锁处理临界资源的同步访问时,如果有任务访问该资源,则互斥锁为加锁状态。此时其他任务如果想...
- 在学习Huawei LiteOS源代码的时候,常常会遇到一些数据结构的使用。如果没有掌握这它们的用法,阅读LiteOS源代码的时候会很费解、很吃力。本文会给读者介绍下LiteOS源码中常用的几个数据结构,包括: 双向循环链表LOS_DL_LIST,优先级队列Priority Queue,排序链表SortLinkList等。在讲解时,会结合相关的绘图,培养数据结构的平面想象能力,帮助更好的学习和理解 在学习Huawei LiteOS源代码的时候,常常会遇到一些数据结构的使用。如果没有掌握这它们的用法,阅读LiteOS源代码的时候会很费解、很吃力。本文会给读者介绍下LiteOS源码中常用的几个数据结构,包括: 双向循环链表LOS_DL_LIST,优先级队列Priority Queue,排序链表SortLinkList等。在讲解时,会结合相关的绘图,培养数据结构的平面想象能力,帮助更好的学习和理解
- 静态分析的基础算法, 都是在图的基础上展开的, 这里介绍图算法中经典的强连通分量的算法-- Tarjan, 以及背后的故事. 静态分析的基础算法, 都是在图的基础上展开的, 这里介绍图算法中经典的强连通分量的算法-- Tarjan, 以及背后的故事.
- 排序 排序是计算机的一种操作方法,其目的是将一组“无序”的记录序列调整为“有序”的记录序列,主要分为内部排序和外部排序。(1)冒泡排序(起泡排序)冒泡排序(Bubble Sort),其基本思路是,对于一组要排序的元素列,依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面,如此继续,直到比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成。优点:稳定;缺点:... 排序 排序是计算机的一种操作方法,其目的是将一组“无序”的记录序列调整为“有序”的记录序列,主要分为内部排序和外部排序。(1)冒泡排序(起泡排序)冒泡排序(Bubble Sort),其基本思路是,对于一组要排序的元素列,依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面,如此继续,直到比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成。优点:稳定;缺点:...
- 今年,华为云温哥华大数据与智能平台实验室与加拿大两所顶尖高校(University of British Columbia 和 Western University)一起,在人工智能AI国际顶会NeurIPS2022上联合举办了The Natural Language for Optimization (NL4Opt)竞赛。 今年,华为云温哥华大数据与智能平台实验室与加拿大两所顶尖高校(University of British Columbia 和 Western University)一起,在人工智能AI国际顶会NeurIPS2022上联合举办了The Natural Language for Optimization (NL4Opt)竞赛。
- 快排有多快 说到快我只推崇葵花宝典,那叫一个快啊~~~ 皮一下哈哈,言归正传。快速排序算法如其名一样,快!来看看快排和其他几大排序算法的并行运行对比视频(中间那个就是快排),你就知道它到底有多快了,请全屏横屏播放更清晰: 啥是快排? 分治思想 从待排元素集中选取一个元素作为摆动基准pivot,pivot这词比... 快排有多快 说到快我只推崇葵花宝典,那叫一个快啊~~~ 皮一下哈哈,言归正传。快速排序算法如其名一样,快!来看看快排和其他几大排序算法的并行运行对比视频(中间那个就是快排),你就知道它到底有多快了,请全屏横屏播放更清晰: 啥是快排? 分治思想 从待排元素集中选取一个元素作为摆动基准pivot,pivot这词比...
- 文章目录 系列目录思维导图基本概念七种常见时间复杂度时间复杂度分析递归下的时间复杂度分析时间复杂度曲线图时间复杂度优化延伸性阅读资料 系列目录 01 ~ 10篇11 ~ 20篇01 数据结... 文章目录 系列目录思维导图基本概念七种常见时间复杂度时间复杂度分析递归下的时间复杂度分析时间复杂度曲线图时间复杂度优化延伸性阅读资料 系列目录 01 ~ 10篇11 ~ 20篇01 数据结...
- 小小明: 之前跟一些小伙伴有个讨论: 可以看到很多跟数据打交道的人,都面对过很复杂的excel公式嵌套层数特别多,肉眼观看很容易蒙圈。在这样的需求背景,小小明就为了解决大家的痛点,... 小小明: 之前跟一些小伙伴有个讨论: 可以看到很多跟数据打交道的人,都面对过很复杂的excel公式嵌套层数特别多,肉眼观看很容易蒙圈。在这样的需求背景,小小明就为了解决大家的痛点,...
- 1 暴力破解法 在主串A中查找模式串B的出现位置,其中如果A的长度是n,B的长度是m,则n > m。当我们暴力匹配时,在主串A中匹配起始位置分别是 0、1、2….n-m 且长度为 m 的 n-m+1 个子串。 暴力匹配 对应代码是: #include<stdio.h>#include<... 1 暴力破解法 在主串A中查找模式串B的出现位置,其中如果A的长度是n,B的长度是m,则n > m。当我们暴力匹配时,在主串A中匹配起始位置分别是 0、1、2….n-m 且长度为 m 的 n-m+1 个子串。 暴力匹配 对应代码是: #include<stdio.h>#include<...
- 大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我热爱AI、热爱分享、热爱开源! 这博客是我对学习的一点总结与思考。如果您也对 深度学习、机器视觉、算法、Python、C++ 感兴趣,可以关注我的动态,我们一起学习,一起进步~ 我的博客地址为:【AI 菌】的博客 我的Github项目地址是:【AI 菌】的Github 文章目录 一、递归的原理二、递归... 大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我热爱AI、热爱分享、热爱开源! 这博客是我对学习的一点总结与思考。如果您也对 深度学习、机器视觉、算法、Python、C++ 感兴趣,可以关注我的动态,我们一起学习,一起进步~ 我的博客地址为:【AI 菌】的博客 我的Github项目地址是:【AI 菌】的Github 文章目录 一、递归的原理二、递归...
- 我们写程序的目的就是使它在任何情况下都可以稳定工作。一个运行的很快但是结果错误的程序并没有任何用处。在程序开发和优化的过程中,我们必须考虑代码使用的方式,以及影响它的关键因素。通常,我们必须在程序的简洁性与它的运行速度之间做出权衡。今天我们就来聊一聊如何优化程序的性能。 1. 减小程序计算量1.1 示例代码1.2 分析代码1.3 改进代码 2. 提取代码... 我们写程序的目的就是使它在任何情况下都可以稳定工作。一个运行的很快但是结果错误的程序并没有任何用处。在程序开发和优化的过程中,我们必须考虑代码使用的方式,以及影响它的关键因素。通常,我们必须在程序的简洁性与它的运行速度之间做出权衡。今天我们就来聊一聊如何优化程序的性能。 1. 减小程序计算量1.1 示例代码1.2 分析代码1.3 改进代码 2. 提取代码...
- 字符串操作看似简单,其实非常重要,不注意的话,经常出现代码运行结果和自己想要的不一致,甚至崩溃。本文总结了一些构建string对象方法、修改string对象的方法、string类型的操作函数、string类型的查找、string对象的比较。 1 构建string对象方法 首先,为了在我们的程序中使用string类型,我们必须包含头文件 。如下: #include <... 字符串操作看似简单,其实非常重要,不注意的话,经常出现代码运行结果和自己想要的不一致,甚至崩溃。本文总结了一些构建string对象方法、修改string对象的方法、string类型的操作函数、string类型的查找、string对象的比较。 1 构建string对象方法 首先,为了在我们的程序中使用string类型,我们必须包含头文件 。如下: #include <...
- 以前也零零碎碎发过一些排序算法,但排版都不太好,又重新整理一次,排序算法是数据结构的重要部分,系统地学习很有必要。 时间、空间复杂度比较 排序算法平均时间复杂度最差时间复杂度空间复杂度数据对象稳定性冒泡排序O(n2)O(n2)O(1)稳定选择排序O(n2)O(n2)O(1)数组不稳定、链表稳定插入排序O(n2)O(n2)O(1)稳定快速排序O(n*log2n)O(n2)O... 以前也零零碎碎发过一些排序算法,但排版都不太好,又重新整理一次,排序算法是数据结构的重要部分,系统地学习很有必要。 时间、空间复杂度比较 排序算法平均时间复杂度最差时间复杂度空间复杂度数据对象稳定性冒泡排序O(n2)O(n2)O(1)稳定选择排序O(n2)O(n2)O(1)数组不稳定、链表稳定插入排序O(n2)O(n2)O(1)稳定快速排序O(n*log2n)O(n2)O...
- 冒泡排序 简介 冒泡排序是因为越小的元素会经由交换以升序或降序的方式慢慢浮到数列的顶端,就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名冒泡排序。 复杂度与稳定性 思路原理 以顺序为例 从第一个元素开始一个一个的比较相邻的元素,如果第一个比第二个大即a[1]>a[2],就彼此交换。从第一对到最后一对,对每一对相邻元素做一样的操作。此时在... 冒泡排序 简介 冒泡排序是因为越小的元素会经由交换以升序或降序的方式慢慢浮到数列的顶端,就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名冒泡排序。 复杂度与稳定性 思路原理 以顺序为例 从第一个元素开始一个一个的比较相邻的元素,如果第一个比第二个大即a[1]>a[2],就彼此交换。从第一对到最后一对,对每一对相邻元素做一样的操作。此时在...
- Hello。你好呀,我是灰小猿,一个超会写bug的程序猿! 时隔好几天,终于更新了,最近看了很多大厂面试题和相关要求,其中关于常用算法的考察几乎是必须的,但是对于常见算法的学习,只单单的记住某几个程序肯定是不可以的,这就需要深入的对算法的定义、思想、原理及解题上下功夫。 今天就来和大家逐个深入剖析一下常见算法的基本定义、思想、原理及解题方法,看完别忘了评论见解,一键三连!... Hello。你好呀,我是灰小猿,一个超会写bug的程序猿! 时隔好几天,终于更新了,最近看了很多大厂面试题和相关要求,其中关于常用算法的考察几乎是必须的,但是对于常见算法的学习,只单单的记住某几个程序肯定是不可以的,这就需要深入的对算法的定义、思想、原理及解题上下功夫。 今天就来和大家逐个深入剖析一下常见算法的基本定义、思想、原理及解题方法,看完别忘了评论见解,一键三连!...
上滑加载中
推荐直播
-
Ascend C算子编程之旅:基础入门篇
2024/11/22 周五 16:00-17:30
莫老师 昇腾CANN专家
介绍Ascend C算子基本概念、异构计算架构CANN和Ascend C基本概述,以及Ascend C快速入门,夯实Ascend C算子编程基础
回顾中 -
深入解析:华为全栈AI解决方案与云智能开放能力
2024/11/22 周五 18:20-20:20
Alex 华为云学堂技术讲师
本期直播我们将重点为大家介绍华为全栈全场景AI解决方案以和华为云企业智能AI开放能力。旨在帮助开发者深入理解华为AI解决方案,并能够更加熟练地运用这些技术。通过洞悉华为解决方案,了解人工智能完整生态链条的构造。
回顾中 -
华为云DataArts+DWS助力企业数据治理一站式解决方案及应用实践
2024/11/27 周三 16:30-18:00
Walter.chi 华为云数据治理DTSE技术布道师
想知道数据治理项目中,数据主题域如何合理划分?数据标准及主数据标准如何制定?数仓分层模型如何合理规划?华为云DataArts+DWS助力企业数据治理项目一站式解决方案和应用实践告诉您答案!本期将从数据趋势、数据治理方案、数据治理规划及落地,案例分享四个方面来助力企业数据治理项目合理咨询规划及顺利实施。
去报名
热门标签