随笔分类 -  算法与数据结构

摘要:采用多路归并技术可以减少归并次数,从而降低块读/写次数,加速排序速度。但一般路数的多少取决于内存的容量。此外,多路归并排序的快慢还取决于内部归并算法的快慢。 设文件有n个记录,m个初始归并段,采用k路归并方法。k路归并的基本操作是,从k个归并段的第一个记录中选出最小记录,把他从输入缓冲区移入输出缓冲 阅读全文
posted @ 2021-09-19 18:59 Jcpeng_std 阅读(592) 评论(0) 推荐(0) 编辑
摘要:考虑使用递归法遍历链表,当越过尾节点后终止递归,在回溯时修改各节点的 next 引用指向。 reverse(pre, cur) 递归函数: 终止条件:当 cur 为空,则返回尾节点 pre (即反转链表的头节点); 递归后继节点,记录返回值(即反转链表的头节点)为 res ; 修改当前节点 cur 阅读全文
posted @ 2021-09-08 21:22 Jcpeng_std 阅读(482) 评论(0) 推荐(0) 编辑
摘要:1 vector vector和数组类似,拥有一段连续的内存空间,并且起始地址不变;因此能高效的进行随机存取,时间复杂度为o(1);但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n);另外,当数组中内存空间不够时,会重新申请一块内存空间并进行内存拷贝。 2 阅读全文
posted @ 2021-08-26 21:44 Jcpeng_std 阅读(738) 评论(0) 推荐(0) 编辑
摘要:二叉搜索树 二叉搜索树又称二叉排序树和二叉查找树,它要么是空树,要么是具有下列性质的二叉树: 1)每个节点都有一个作为查找依据的关键码。所有节点的关键码互不相同; 2)若它的左子树不为空,则左子树上所有节点的关键码均小于根节点的关键码; 3)若它的右子树不为空,则右子树上所有节点的关键码均大于根节点 阅读全文
posted @ 2021-08-14 23:07 Jcpeng_std 阅读(256) 评论(0) 推荐(0) 编辑
摘要:编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址。 如果是有效的 IPv4 地址,返回 "IPv4" ; 如果是有效的 IPv6 地址,返回 "IPv6" ; 如果不是上述类型的 IP 地址,返回 "Neither" 。 IPv4 地址由十进制数和点来表示,每个地址包含 4 阅读全文
posted @ 2021-08-11 23:20 Jcpeng_std 阅读(1391) 评论(0) 推荐(0) 编辑
摘要:在工厂模式中,创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式作为一种创建模式,一般在创建复杂对象时,考虑使用;在创建简单对象时,建议直接new完成一个实例对象的创建。 简单工厂模式 简单工厂模式主要特点是需要在工厂类中做判断,从而创造相应的产品,当增加新 阅读全文
posted @ 2021-08-05 21:52 Jcpeng_std 阅读(223) 评论(0) 推荐(0) 编辑
摘要:C++中multiset容器是STL模板<set>库中一个非常有用的类型,它可以看成一个序列,插入一个数,删除一个数都能够在O(logn)的时间内完成,而且他能时刻保证序列中的数是有序的,而且序列中可以存在重复的数(而set容器要求两两不同,且不保证有序)。 常用成员函数 insert(elem): 阅读全文
posted @ 2021-08-04 22:59 Jcpeng_std 阅读(3053) 评论(0) 推荐(3) 编辑
摘要:二叉查找树又称二叉排序树,它要么是空树,要么是具有下列性质的二叉树: 每个节点都有一个作为查找依据的关键码。所有节点的关键码互不相同; 若它的左子树不为空,则左子树上所有节点的关键码均小于根节点的关键码; 若它的右子树不为空,则右子树上所有节点的关键码均大于根节点的关键码; 它的左、右子树也是二叉查 阅读全文
posted @ 2021-07-22 12:24 Jcpeng_std 阅读(827) 评论(0) 推荐(0) 编辑
摘要:内部排序是指在排序期间数据元素全部存放在内存的排序。外部排序是指在排序期间全部元素的个数过多,不能同时存放在内存,必须根据排序过程的要求,不断在内存和外存之间移动的排序。本次主要介绍常见的内部排序算法。 1. 直接插入排序 直接插入排序的算法思想是把待排序序列a[n]中的n个元素看作是一个有序表和无 阅读全文
posted @ 2021-07-17 17:11 Jcpeng_std 阅读(355) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示