算法笔记基础

Acwing算法基础课学习笔记 Acwing 算法基础学习笔记 阅读详情

一、基本内容

1、算法的意义与重要性

好的程序具有:正确性、可拓展性、安全性、健壮性、可维护性以及算法等

2、时间复杂度与大O表示法

大O表示法定义:对于给定的函数g(n),用O(g(n))来表示以下函数的集合:O(g(n))={f(n):存在正常量c和n0,使得对所有n≥n0,有0≤f(n)≤cg(n)}。我们使用的O记号来给出函数的一个在常量因子内的上界

时间比较:O(1) < O(log n) < O(n) < O(n log n) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)

复杂时间法则:

类型取值法则
for循环从里到外,类似于剥洋葱形式
顺序语句各个运行时间求和
if/else语句路径最长时间

二、主题内容

1、二分查找法

概念:在某一有序数组中查找某一特定元素的搜索算法

步骤:
1.如果中间元素正好是要查找的元素,则搜索过程结束
2.如果某一特定元素大于或者小于中间元素,则在对应的子数组中查找,再次比较中间元素是否相同
3.若出现某一步骤数组为空,则代表没有找到

2、数组与链表

特点:数组,有序且连续;链表,可连续也可不连续

复杂度比较:

操作链表数组
查找O(n)O(1)
头部插入/删除O(1)O(n)
尾部插入/删除O(n)O(1)
中间插入/删除O(n)O(n)

3、循序表

特点:是数组和链表的结合体

4、链表

类型特点
单向链表是数组和链表的结合体,包含头指针和尾指针
双向链表是数组和链表的结合体,包含头节点和尾节点,每一个节点都指向一个前驱和后继

5、栈和队列

类型特点
栈先进后出(LIFO)
队列先进后出(FIFO)

栈方法:
1.S.push(e):压入栈中
2.S.pop:弹出栈
3.S.top():查询顶部元素
4.S.is_empty():检查栈是否包含元素
5.len(S):检查栈的长度

队列方法:
1.Q.enqueue(e):队尾插入
2.Q.dequeue():队头去除
3.Q.first():查询对头元素
4.Q.is_empty():检查栈是否包含元素
5.len(Q):检查栈的长度

循环队列:避免了队列空间浪费的弊端

双端队列:支持队列的头部和尾部进行插入和删除操作
双端队列方法:
1.D.add_first(e):对头插入
2.D.add_last(e):对尾插入
3.D.delete_first(e):对头删除
4.D.delete_last(e):对尾删除
5.D.first():查询头部元素
6.D.last():查询尾部元素
4.D.is_empty():检查是否包含元素
5.len(D):检查的长度

6、排序

选择排序
特点:1.运行时间和输入无关;2.数据移动是最少的
时间复杂度:O(n2);空间复杂度:O(1)

冒泡排序
特点:运行时间和输入无关;
时间复杂度:O(n2);空间复杂度:O(1)

插入排序
特点:运行时间和输入有关;

希尔排序
结合分组和不长进行插入排序比较

归并排序
对两个不同的数据进行排序进行

快速排序
随机挑出基准值,进行排列

AcWing 算法基础课笔记 1.基础算法 AcWing 算法基础课笔记 1.基础算法排序快速排序基本思想思路讲解快排模板归并排序基本思想思路归并模板二分整数二分基本思想注意点整数二分模板浮点数二分基本思想浮点数二分模板 排序 快速排序 基本思想 基于分治。 第一步 确定分界点x:取左边界q[l],或者取中间值q[(l+r)/2],或者取右边界q[r],也可以随机。 第二步 调整区间(较难部分):让小于等于x的数在一个区间,大于x的在另一个区间 第三步 递归处理左右两端 平均时间复杂度: O(nlogn) 每层期望是 n/2 ,递归深度 logn 阅读详情

相关推荐

算法基础课 模板题笔记:贪心

AcWing算法基础课 贪心算法例题笔记。

https://www.hyperplasma.top 1657

算法笔记(一)(教你系统学习基础算法)

(一)基础算法 目录 (一)基础算法 1、快速排序 例题1:第k个数 2、归并排序 例题一:逆序对的数量 3、二分 例题一:数的范围 例题二:数的三次方根 4、前缀和与差分 例题一:前缀和 例题二:子矩阵和 例题三:差分 例题四:差分矩阵 5、双指针算法 例题一:最长连续不重复子序列 例题二:数组元素的目标和 例题三:判断子序列 6、位运算 例题一:二进制中一的个数 7、离散化 例题一:区间和 8、区间合并 例题一:区间合并 1、快速排序...

qq_59539549的博客 2187

长短期记忆网络(Long Short-Term Memory networks, LSTM)

如何简单的理解LSTM——其实没有那么复杂:

weixin_39910711的博客 2万+

算法笔记(基础篇)

java算法笔记,配合AcWing算法基础课学习效果更佳!

Luffy的博客 1117

虚拟机扩容——非LVM分区

虚拟机扩容——非LVM分区

ytraister的博客 3905

CMOS中的 latch-up 闩锁效应、添加tap解决latch-up、使用combained area绘制TAP TAP的作用 IC后端版图【VLSI】

本文详细阐述了闩锁效应latch-up问题、如何通过添加Tap来解决。详细讲述了如何通过combained area来绘制TAP

Jie_MSD的博客 1万+

算法基础课笔记 (持续更新中 ...)

算法基础 第 一 讲 快速排序 知识点 1.确定分界点 (x) 数组 q 的 中间值 x = a[(l + r) / 2] //一般以中位数为分界点,很少 x = a[l] / a[r] / 随机 2.调整范围:<重点> 3.递归 处理 左边 和 右边 模板 void quick_sort(int q[], int l, int r)//快速排序 { if (l >= r) return; int x = q[(l + r) / 2];

barrycca的博客 255

Synares病毒实战:如何手动清除C盘隐藏的Synaptics.exe(附资源修复脚本)

本文详细介绍了Synares感染型病毒的手动清除方法,该病毒伪装成Synaptics触摸板驱动,感染EXE和XLSX文件。文章提供了从病毒行为分析、母体清除到被感染文件修复的全流程指南,并附有实用的资源修复脚本和防御加固方案,帮助用户彻底清除这一顽固病毒。

lg888的博客 2343

算法笔记—基础算法

算法笔记

mo8181的博客 973

版图提取的spice网表中参数含义及二级效应STI/WPE

寄生电阻、寄生电容可以从版图提出的.sp文件中看, ad area of drain 面积 as area of source pd perimeter of drain 周长,PS PD周长都不计算与栅极接触的部分 ps perimeter of source nrd 漏扩散区等效方块数 nrs 源扩散区等效方块数 sa ...

qq_40007892的博客 6552

【网络图】:附Origin详细画图教程

网络图,是一种由节点(或顶点)和连接这些节点的边(或链路)组成的图形结构。在网络图中,节点通常代表系统中的一个实体(如项目中的一项任务、通信网络中的一个设备、或运输网络中的一个站点),而边则代表这些实体之间的直接联系或流动(如任务的先后顺序、数据的传输路径、或乘客的旅行路线)。 有向图:如果边具有方向性,即从一个节点指向另一个节点,则称为有向图。这种图常用于表示具有明确先后顺序或方向性的系统,如项目管理中的任务依赖关系。 无向图:如果图中的边没有方向,则称为无向图。它适用于表示实体间相互关联但无明确方向性的

weixin_50236590的博客 3954

算法笔记1

算法,基础

哼哼唧唧的博客 1104

Codex 调试记录获取完全指南:日志查看、工具调用与实战排查教程

本文主要介绍了Codex 调试记录获取完全指南:日志查看、工具调用与实战排查教程,希望能对使用Codex的同学们有所帮助。 文章目录 1. 背景 2. 实战教程

weixin_43178406的博客 6万+

【算法】AcWing算法基础课笔记 第一章 基础算法 Part 1

算法基础课之基础算法第一部分,介绍了排序和二分算法。

Summerison的博客 849

洛达开发--AB1585 PC 工具介绍

洛达常用的PC开发工具包括三款:1)IOT_Flash_Tool是固件烧写工具,支持USB/UART接口下载,需通过断电重启完成烧录;2)EPT是图形化PinMux配置工具,适用于MT25x3/MT768x等芯片的引脚复用设置;3)ATK是综合开发套件,包含日志工具、配置工具、OTA工具和实验室测试工具等组件。这三款工具分别针对固件烧录、硬件配置和系统调试等不同开发环节,形成完整的开发工具链。

Joon2020的博客 670

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Acwing-基础算法-第一章-基础算法笔记:助你掌握算法基础的全方位笔记

Acwing-基础算法-第一章-基础算法笔记:助你掌握算法基础的全方位笔记 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在编程领域,算法是核心竞争力的体现。今天,我们要推荐的这个项目——Acwing-基础算法-第一章-基础算法笔记,旨在帮助编程爱好者深入理解ACWing基础算法课程的核心内容。这份笔记内容全面、条理清晰,是学习算法不可或缺的辅助资料。 项目技术分析 ...

gitblog_06747的博客 578

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

AcWing算法基础课笔记

这里是学习AcWing算法基础课,记录的Notion笔记的搬运,主要是为了展示个人的知识积累。

Pause1996的博客 260

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

算法课程笔记——二维几何基础

算法课程笔记——二维几何基础。

2302_79123319的博客 354

算法课程笔记——并查集基础

算法课程笔记——并查集基础。

2302_79123319的博客 520

算法课程笔记——计算几何基础

算法课程笔记——计算几何基础。

2302_79123319的博客 928

《Acwing 算法基础课超详细笔记》:你的算法学习利器

《Acwing 算法基础课超详细笔记》:你的算法学习利器 【下载地址】Acwing算法基础课超详细笔记下载 Acwing 算法基础课超详细笔记下载欢迎访问本仓库,这里提供了一份详尽的资源文件——《Acwing 算法基础课超详细笔记》 ...

gitblog_06601的博客 529

Acwing-基础算法-第一章-基础算法笔记

Acwing-基础算法-第一章-基础算法笔记 去发现同类优质开源项目:https://gitcode.com/ 这是关于ACWing基础算法课程的第一章笔记,内容全面,条理清晰。笔记详细记录了基础算法的核心概念与要点,旨在帮助学习者理解和掌握算法的基本思想。 本笔记由以下部分组成: 算法概述 基本概念介绍 算法思路解析 重难点问题讨论 笔记作者在整理过程中,力求将复杂概念以易于理解的方式呈现,...

gitblog_06725的博客 414

算法基础之离散化学习笔记

算法基础之离散化学习笔记,暂时无内容,稍后补上

技术宅拯救世界 390

算法课程笔记——树的基础和树的基础

算法课程笔记——树的基础和树的基础。

2302_79123319的博客 195

AcWing算法基础课笔记1(持续更新)

自制AcWing算法基础课笔记,跟着课程视频做的,其中有一些自己学习过程中的思考

weixin_46695464的博客 2088

算法课程笔记——基础拓扑排序

算法课程笔记——基础拓扑排序。

2302_79123319的博客 291
上一篇: 【PHP学习】PHP学习笔记 3
鹿心肺语
博客等级 码龄7年 3粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值