- 博客(7)
- 收藏
- 关注
原创 icoding 排序 数组合并
数组合并假设有 n 个长度为 k 的已排好序(升序)的数组,请设计数据结构和算法,将这 n 个数组合并到一个数组,且各元素按升序排列。即实现函数: void merge_arrays(const int* arr, int n, int k, int* output);其中 arr 为按行优先保存的 n 个长度都为 k 的数组,output 为合并后的按升序排列的数组,大小为 n×k。时间要求(评分规则),当 n > k 时:满分:时间复杂度不超过 O(n×k×log(n))
2021-06-22 20:32:47 407
原创 icoding 错误尝试
数组合并假设有 n 个长度为 k 的已排好序(升序)的数组,请设计数据结构和算法,将这 n 个数组合并到一个数组,且各元素按升序排列。即实现函数: void merge_arrays(const int* arr, int n, int k, int* output);其中 arr 为按行优先保存的 n 个长度都为 k 的数组,output 为合并后的按升序排列的数组,大小为 n×k。时间要求(评分规则),当 n > k 时:满分:时间复杂度不超过 O(n×k×log(n))
2021-06-22 18:10:35 157
原创 icoding 排序 堆化
堆化二叉堆一般用数组来表示。例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2。 因此,第0个位置的子节点在1和2,1的子节点在3和4。以此类推。这种存储方式便于寻找父节点和子节点。在二叉堆上可以进行插入节点、删除节点、取出值最小的节点、减小节点的值等基本操作。“最小堆”的定义如下:typedef struct _otherInfo{ int i; int j;}OtherInfo;typedef struct _minHeapNode{
2021-06-21 19:48:00 490
原创 icoding 排序 堆元素插入
堆元素插入二叉堆一般用数组来表示。例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2。 因此,第0个位置的子节点在1和2,1的子节点在3和4。以此类推。这种存储方式便于寻找父节点和子节点。在二叉堆上可以进行插入节点、删除节点、取出值最小的节点、减小节点的值等基本操作。“最小堆”的定义如下:typedef struct _otherInfo{ int i; int j;}OtherInfo;typedef struct _minHeapNode
2021-06-21 19:45:43 750
原创 icoding 排序 堆初始化
堆初始化二叉堆一般用数组来表示。例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2。 因此,第0个位置的子节点在1和2,1的子节点在3和4。以此类推。这种存储方式便于寻找父节点和子节点。在二叉堆上可以进行插入节点、删除节点、取出值最小的节点、减小节点的值等基本操作。“最小堆”的定义如下:typedef struct _otherInfo{ int i; int j;}OtherInfo;typedef struct _minHeapNode{
2021-06-21 19:42:39 335
原创 icoding 排序 堆辅助函数
堆化二叉堆一般用数组来表示。例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2。 因此,第0个位置的子节点在1和2,1的子节点在3和4。以此类推。这种存储方式便于寻找父节点和子节点。在二叉堆上可以进行插入节点、删除节点、取出值最小的节点、减小节点的值等基本操作。“最小堆”的定义如下:typedef struct _otherInfo{ int i; int j;}OtherInfo;typedef struct _minHeapNode{
2021-06-21 19:39:34 498
原创 icoding 查找-哈希表添加
哈希表添加哈希表(Hash Table,也叫散列表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做哈希函数,存放记录的数组称做哈希表。哈希表相关定义如下:typedef enum{ HASH_OK, HASH_ERROR, HASH_ADDED, HASH_REPLACED_VALUE, HASH_ALREADY_ADDED,
2021-06-10 11:53:44 876 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人