新闻详情

新闻详情

首页 / 资讯中心 / 详情

嵌入式开发学习日志(排序算法,字符型数组) day8 持续更新中

发布时间:2026/10/28 10:00:34来源:尧图网络
嵌入式开发学习日志(排序算法,字符型数组) day8 持续更新中
一、数组排序升序、降序1. 选择排序思想将待排序位置的数据和后面的数据依次进行比较按照升序要求将较小值存储在待排位置。时间复杂度效率O(n²)空间复杂度空间 / 内存O(1)排序算法的稳定性定义 在一个待排序列中出现了两个相同的数据经过排序之后这两个相同数据的相对位置没有发生变化则该排序算法为稳定的排序算法假如这两个相同数据的相对位置发生了变化则该排序算法是一个不稳定的排序算法。参考代码int a[10] {1,2,-3,-4,-5,6,7,8,-9,0}; int len sizeof(a) / sizeof(a[0]); int i 0; int j 0; int tmp 0; for (i 0; i len-1; i) { for (j i1; j len; j) { if (a[i] a[j]) { tmp a[i]; a[i] a[j]; a[j] tmp; } } }2. 冒泡排序思想相邻两两数据进行比较按照升序要求将较大值交换到两两中的后者位置经过一趟排序优先确定最大值。时间复杂度O(n²)空间复杂度O(1)稳定性稳定参考代码降序冒泡int a[10] {1,-2,-3,4,5,6,7,8,-9,0}; int len sizeof(a) / sizeof(a[0]); int i 0; int j 0; int tmp 0; for (j 0; j len-1; j) { for (i 0; i len-1-j; i) { if (a[i] a[i1]) { tmp a[i]; a[i] a[i1]; a[i1] tmp; } } }3. 插入排序课件仅标题标注无代码实现4. 二分查找折半查找前提条件序列必须有序思想升序数组将要查找的值和序列的中间位置值比较比中间位置值大则在后半序列中继续折半查找如果比中间值小则从前半个序列中继续折半查找如果恰好相等则找到。优势效率高时间复杂度 O(log n)参考代码i 0; j len-1; while (i j) { mid (i j) / 2; if (num a[mid]) { i mid 1; } else if (num a[mid]) { j mid - 1; } else { printf(find %d\n, a[mid]); break; } } if (i j) { printf(Not find\n); }二、字符型数组作用保存多个字符 → 存储字符串1. 字符型数组定义char 数组名[常量];数组名遵循标识符命名规则 示例char str[32]; // sizeof(str) 结果为32字节2. 字符型数组元素访问格式数组名[下标]str[0]; //类型为char⚠注意下标避免数组越界。3. 字符型数组的初始化1全部初始化char str[5] {h,e,l,l,o}; char str[] {h,e,l,l,o}; //占用5字节 char str[] {hello}; char str[] hello;当 [] 常量被省略时数组空间按照初始化后的字符个数确定字符串形式初始化会额外增加\0存储位置。2局部初始化char str[32] {h,e,l,l,o}; char str[32] {hello}; char str[32] hello;规则没有初始化的部分默认存储 0\0区分记忆0等价于\048等价于000 \03初始化全 0char str[32] {0}; char str[32] {\0};4. 字符型数组的存储特点单一性存储类型为 char有序性访问顺序str[0] → str[n]连续性内存占用连续空间5. 字符型数组的输入输出输出方式char str[32] {h,e,l,l,o}; char str1[32] {hello}; int i 0; //方式1循环逐个字符输出 for (i 0; str[i] ! \0; i) { printf(%c, str[i]); } printf(\n); //方式2printf整体输出 printf(%s\n, str); printf(%s\n, str1); //方式3puts输出自带换行 puts(str); puts(str1);输入方式char str[100] {0}; //遇到空格、tab、回车停止读入 scanf(%s, str); //危险函数存在越界风险新标准C已经废弃 gets(str);两个核心函数区分strlen(str)计算字符串有效字符长度不包含\0sizeof(str)计算字符数组占用内存总字节数由定义数组时开辟空间大小决定6. 字符型数组操作方法字符串基础功能① strlen获取字符串长度手写实现原理int i 0; while (src[i] ! \0) { i; } printf(len %d\n, i);② strcpy把源字符串拷贝到目标字符数组中手写实现原理char src[32] {hello world}; char dst[32] {0}; int i 0; while (src[i] ! \0) { dst[i] src[i]; i; } dst[i] \0; printf(dst %s\n, dst);③ strcat将源字符串拼接到目标字符串后边④ strcmp比较两个字符串大小三、核心易错点汇总字符串结束标志\0ASCII 0和字符0ASCII 48绝对不能混淆scanf(%s)无法读取带空格字符串gets()可以读取空格但函数已废弃排序区分稳定性选择排序不稳定冒泡排序稳定二分查找只能用于有序数组strlen和sizeof是高频考点不要混淆字符数组拷贝、拼接完成后必须手动补充结束符\0否则输出乱码。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/10/27 6:27:07

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/10/27 8:06:52

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/10/28 6:32:58

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/10/27 15:44:59

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/10/27 1:55:44

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/10/26 21:26:08

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉