- 博客(5)
- 收藏
- 关注
原创 动态内存分配函数
本文介绍了C语言中内存动态分配的概念和实现方法。动态分配允许程序在运行时按需申请内存,数据临时存放在堆区,只能通过指针引用。系统提供四个主要函数:malloc分配指定大小空间,calloc为数组分配连续空间,realloc调整已分配空间大小,free释放内存空间。这些函数都声明在stdlib.h头文件中,使用时需包含该文件。动态分配机制提供了灵活的内存管理方式,可根据程序需求随时申请和释放内存空间。
2025-12-04 20:57:52
858
原创 疑问解答之链表结点的结构体定义
结构体内部可以定义指向自身类型的指针,是因为指针的大小是固定的(32位系统4字节,64位系统8字节),编译器无需知道结构体完整定义即可确定指针所需内存。而包含自身实例会导致无限递归定义,无法确定结构体大小。这种机制允许实现链表、树等递归数据结构,是C/C++的重要特性。指针的固定大小使得编译器分阶段处理时,即使类型未完全定义也能预留指针空间。
2025-11-10 21:37:16
351
原创 选择排序法详解
选择排序是一种简单的比较排序算法,通过不断选择未排序部分的最小元素放到已排序部分末尾。算法分为查找最小值和交换两个步骤,时间复杂度始终为O(n²),空间复杂度为O(1)。C语言实现使用嵌套循环,外层控制位置,内层查找最小值并交换。相比冒泡排序,选择排序交换次数更少(最多n-1次),但不稳定。示例演示了对数组[64,25,12,22,11]的完整排序过程。
2025-10-07 00:06:41
1727
原创 冒泡排序法补充
通过分析冒泡排序算法在降序排列时的运行过程,揭示了常见的理解误区。以数列[55,23,87,62,16]为例,说明了降序排序时第一轮仅能将最小值移到末尾,而非直接使最大值到达首位。解释了冒泡排序的逐步移动特性,强调该算法每轮只能保证当前未排序部分的最小值沉底,最大值需要多轮比较才能到达正确位置。最后明确了升序和降序排列的交换条件差异。
2025-10-03 00:14:33
1003
原创 冒泡排序法
冒泡排序法又称为交换排序法,是从观察水中气泡变化构思而成的,原理是从第一个元素开始,比较相邻元素的大小,若大小顺序有误,则对调后再进行下一个元素的比较,仍佛气泡从水底逐渐升到水面上一样。如此扫描过一次之后就可确保最后一个元素位于正确的顺序,接着逐步进行第二次扫描,直到完成所有元素的排序关系为止。二、核心思想重复地遍历要排序的列表,一次比较两个相邻的元素,如果它们的顺序错误(比如小的在后,大的在前),就把它们交换过来。
2025-10-02 12:34:45
1482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅