摘要:本文聚焦于仓颉语言,深入探讨其内置的数据结构相关特性,包括Array数组的底层实现、ArrayList动态数组源码分析、HashMap哈希表的实现原理以及...
Rust 是一门系统级编程语言,以其内存安全和高性能而闻名。在 Rust 中,所有权、借用和生命周期等概念是其核心特性,而移动语义和复制语义则与所有权系统紧密相...
考虑另一个例子:[1,0,0,3,12] 初始:slow=0, fast=0 第一轮: fast=0,nums[fast]=1不为0,不进入第一个whil...
希尔排序(Shell Sort)是插入排序的优化版本,通过引入 “间隔(gap)” 概念,先将数组分成多个子数组进行局部排序,再逐步缩小间隔直至为 1,最终完成...
需求:在一个数组中实现两个栈,共享数组空间,分别从数组的两端向中间生长(左栈从 0 开始,右栈从maxSize-1开始),提高空间利用率。核心逻辑:
栈(Stack)是一种 线性数据结构,它遵循 后进先出(LIFO: Last In, First Out)原则。也就是说,最后压入栈的元素会最先被取出来。 栈...
泛型(Generics)是 Java 等编程语言中一种参数化类型的特性,它允许在定义类、接口或方法时,通过类型参数来表示未知类型,直到使用时再指定具体类型。
冒泡排序(Bubble Sort)是一种基于比较和交换操作的简单排序算法,其核心机制是通过重复遍历待排序序列,对相邻元素进行比较并按需交换,使较大的元素逐步 “...
比如左边的子树的子树没有右边的子树”(即某个左分区的子分区只有左子数组、没有右子数组)是正常现象,本质上是由数组元素的分布和基准值的选择决定的,并不需要刻意 “...
如果有一个关键码的集合 K={k₀,k₁,k₂,…,kₙ₋₁},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Kᵢ≤K₂ᵢ₊₁ 且 Kᵢ...
进程池(Process Pool) 是一种预创建+复用式的进程管理技术,其本质是操作系统中预分配的进程资源容器。它包含两大核心组件:
在某些特定场景下,当我们需要处理海量数据(如URL、邮件地址、用户名等非整数数据)并快速判断其是否存在时,传统的位图(BitMap)因其只能处理整数类型而无法适...
排序 :所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。
这里我们先开辟k个整型大小的空间,再从文件中读取k个数据到数组中,再将k个数据建成小堆,然后读取剩余的数据一一与堆顶进行比较,直到读取完,堆中就为最大的k个数
顺序结构存储就是使用数组来存储,一般使用数组只适合表示完全二叉树,因为不是完全二叉树会有空间的浪费。而现实中使用中只有堆才会使用数组来存储,关于堆我们接下来就会...
栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小
上次顺序表中我们是对整型数据进行操作,而如果我们要实现通讯录,就需要存放不同的联系人数据,但是要存放联系人数据应该要怎么做呢?没错,我们可以使用结构体类型。
我们在头文件中进行对函数的声明,首先我们定义一个自定义类型的结构体,这个结构体就是动态顺序表,结构体成员分别为SLDataType* arr,int size,...
说白了就是在底层封装了一个静态数组。但是呢,比静态数组要强一点,但是和vector比又显得很鸡肋