- 博客(21)
- 收藏
- 关注
原创 软件设计师——希尔排序
逐步减少增量(步长),最终对整个数组进行直接插入排序。循环对每组进行插入排序(类似直接插入排序,但步长为。平均:O(n \log n)(依赖步长序列)。:每组内部使用插入排序,但元素间隔为步长。第一趟排序后,部分元素已接近最终位置(如。希尔排序是插入排序的改进版本,通过。,直至步长为 1,完成最终排序。:希尔排序通过逐步缩小步长(如。对整个数组进行直接插入排序。)分组排序,减少逆序对。,对每组进行插入排序。
2025-05-21 21:23:50
344
原创 软件设计师备考——关于堆排序算法的学习
如果某个儿子更有钱,就和父亲交换位置,直到家族里每一层都满足"父亲最有钱"的规矩。排序:每次把董事长(最大值)开除并放到退休高管区(数组末尾),然后让剩下的员工重新竞选董事长,重复直到所有人排好序。为根的子树是否满足"大顶堆"性质(父节点 ≥ 子节点),如果不满足就调整。建堆:把乱序的数组改造成一个"家族企业",董事长(堆顶)最有钱。:叶子节点本身已经是堆(没有孩子),所以只需处理有孩子的节点。:如果孩子比父节点大,就把孩子值往上移动,父节点位置下移。:直到父节点比两个孩子都大,或者到达叶子节点。
2025-05-20 14:50:28
376
原创 对于Handler消息机制的理解
问题来了:员工不能直接冲进前台帮你做奶茶(子线程不能直接操作UI),否则会乱套(界面卡顿/崩溃)。- Android规定只有主线程能更新UI,Handler保证了子线程间接通知主线程,而不是直接动手改UI。- 子线程通过Handler发送消息到主线程的消息队列(比如:“材料准备好了”)。- 员工(子线程):在后厨准备材料(网络请求、耗时操作)。- 主线程按顺序处理消息(收到消息后更新UI)。- Message:传递的消息(比如:“下载完成”)。- 你(主线程/UI线程):负责做奶茶(更新界面)。
2025-05-17 16:24:14
350
原创 git的安装与配置
Git可以帮助开发人员跟踪文件的更改,协调多人在同一个项目上的工作,以及恢复到先前的版本。通过使用Git,团队成员可以同时编辑文件,然后将他们的工作合并到一个共享的代码库中。Git还提供了分支的概念,允许开发人员在不影响主线开发的情况下进行实验性的工作或者并行开发不同的功能。,这里主要介绍了添加SSH公钥至gitte,如果要用GitHub,对应改变命令即可(gitte→github)输入命令时一定要注意有/无空格!这里也说明了一些小问题。
2024-04-01 01:14:39
237
原创 nav第2关:封装、继承和多态进阶(二)
1、 类方法是属于整个类的,而实例方法是属于类的某个对象的。由于类方法是属于整个类的,并不属于类的哪个对象,所以类方法的方法体中不能有与类的对象有关的内容。普通类中,可以在子类中重写父类中的方法,这样就可以访问子类中的重写方法。接口中不包含构造器,抽象类里可以包含构造器,抽象类中的构造器并不是用于创建对象,而是让其他子类调用这些构造器来完成抽象类的初始化操作;接口中只能包含抽象方法和默认方法,不能为普通方法提供方法实现;修饰的变量称为静态变量,静态变量属于整个类,而局部变量属于方法,只在该方法内有效。
2023-11-27 10:50:59
322
1
原创 TCP/IP协议
TCP/IP协议族还包括其他辅助协议,如用户数据报协议(UDP,User Datagram Protocol)、互联网控制消息协议(ICMP,Internet Control Message Protocol)、地址解析协议(ARP,Address Resolution Protocol)等。TCP/IP协议族是互联网通信的基础,它使得不同类型的计算机和网络设备能够互相通信和交换数据。它负责将数据分割成小的数据包,并确保它们按顺序到达目标设备,同时还负责检测和纠正传输过程中可能出现的错误或丢失的数据包。
2023-11-18 21:26:52
72
1
原创 stm32HAL库函数使用printf方法
配置串口通信:使用STM32的库函数或者CubeMX工具配置串口通信,设置波特率、数据位、停止位等参数。确保串口初始化完成并处于可用状态。函数中添加将数据发送到串口的代码。具体的发送方式会根据你的串口通信方式和库函数的不同而有所不同。重定向标准输出流:对于使用标准库的情况,你需要重新定义。函数,将其重定向到串口输出。
2023-11-18 18:49:42
763
2
原创 JAVA——多态
多态:就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。现实中,比如我们按下F1键这个动作:如果当前在Flash界面下弹出的就是AS 3的帮助文档;如果当前在Word下弹出的就是Word帮助;在Windows下弹出的就是Windows帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。
2023-11-15 09:52:58
56
原创 Java——接口
接口(interface)是Java所提供的另一种重要技术,它的结构和抽象类非常相似,也具有数据成员与抽象方法,但它与抽象类又有以下两点不同:接口里的数据成员必须初始化,且数据成员均为常量;接口里的方法必须全部声明为abstract,也就是说,接口不能像抽象类一样保有一般的方法,而必须全部是“抽象方法”。interface 接口名称 // 定义抽象类final 数据类型 成员名称 = 常量;//数据成员必须赋初值abstract 返回值的数据类型 方法名称(参数...);
2023-11-15 09:32:03
54
原创 JAVA——抽象类
抽象类的作用有点类似“模版”,其目的是要设计者依据它的格式来修改并创建新的类。但是并不能直接由抽象类创建对象,只能通过抽象类派生出新的类,再由它来创建对象。也可以创建一种类专门用来当作父类,这种类称为“文末附练习抽象类时某题的代码。抽象类不能被实例化,也就是。
2023-11-15 08:53:16
74
原创 方法的重写和重载
如果子类可以拥有比父类更严格的访问权限,那么在通过父类引用调用该方法时,将无法访问到子类中的实现,违背了面向对象的多态性原则。方法重写是在子类存在方法与父类的方法的名字相同而且参数的个数与类型一样,返回值也一样的方法,就称为方法的重写;方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载;“多态”的技术之一,所谓“重载”,即是方法名称相同,但却可在不同的场合做不同的事。①子类从父类中继承方法,有时,子类需要修改父类中定义的方法的实现,这称做。
2023-11-15 08:11:58
127
原创 JAVA继承——super
最终都会执行父类的构造函数。这是因为子类的构造函数通常需要初始化继承自父类的成员变量,并且在实例化子类时,必须确保父类的构造函数得到执行以完成父类对象的初始化工作。因此,即使没有显式调用。,父类构造函数内的语句最终仍然会被执行。super语句必须是子类构造函数中的第一条语句。关键字来实现对父类成员的访问,用来引用当前对象的父类。(当一个子类实例化时,无论是否显式调用。在每个类构造函数中由编译器自动添加。调用父类中带参数的构造函数。关键字:指向自己的引用。调用父类中的属性或方法。关键字:我们可以通过。
2023-11-15 00:31:55
84
原创 博客摘录「 C语言中的结构体和联合体」2023年6月2日
共用体变量的引用与结构体类似,共用体变量中成员的引用方式为:共用体变量名.成员名只有先定义了共用体变量才能引用它,而且不能直接引用共用体变量,只能引用共用体变量中的成员。例如,前面定义了共用体变量 a,则:a.i 表示引用共用体变量中的整型变量 ia.c 表示引用共用体变量中的字符型变量 ca.f 表示引用共用体变量中的实型变量 f但不能只引用共用体变量,例如 printf("%d", a);共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后,原有的成员就失去作用了。a.c = 'F';
2023-08-09 08:42:50
102
关于电路设计,想要实现这种电路图需要学习一些什么?
2024-07-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人