题目 计算 a+b 并以标准格式输出总和—-也就是说,从最低位开始每隔三位数加进一个逗号(千位分隔符),如果结果少于四位则不需添加。 输入格式 共一行,包含两个整数 a 和 b。 输出格式 共一行,以标准格式输出 a+b 的和。 输入样例: -1000000 9 输出样例: -999,991 题解 cin接受两个数字,求其和并转换成字符串 ...
散列表
散列表 散列表建立了Key和存储地址之间的一种直接映射关系,使查找速度极快。 如果冲突发生很多次,最坏情况下的时间复杂度是 $O(N)$,其中 N 是键的数量。 如果有一个不错的实现方式会将冲突数量保持在最低水平,在此情况下,时间复杂度是 $O(1)$。 哈希表使用列表作为桶存储 Key,使用链表存储 Value。如果列表空间太小,容易发生冲突;如果列表空间太大,会出现很...
链表
在链表中,数据的添加和删除都较为方便,就是访问比较耗费时间。 存储 在链表中,数据一般都是分散存储于内存中的,无须存储在连续空间内。 因为数据都是分散存储的,所以如果想要访问数据,只能从第1个数据开始,顺着指针的指向一一往下访问(这便是顺序访问)。 链表的时间复杂度 访问:O (n) 删除:O(1) 添加:O(1) 循环链表 通常...
二分查找
算法特点 二分查找算法是搜索算法中用得最多、最简单易用、效率较好的搜索算法。 二分查找只能查找有序的数组。 在使用二分查找算法前,必须对数组进行排序,而且在每次更改、插入、删除后都要进行排序以保证数组的有序状态。 算法步骤 将要查找的值与数组的中间位元素进行比较,若小于中间位,则在前半部分区域查找,若大于中间位,则在后半部分区域查找,如果等于中间位,则直接返回。 ...
快速排序
算法特点 序列很短的话,比如少于16个元素,就不要用快速排序了,换插入排序。 快速排序基于分治和递归。 目标是把所有比基准元素小的元素移到基准元素的左边,把比基准元素大的移到右边。 算法步骤 先从序列中随机选择一个元素作为基准元素 Pivot,选哪个都没有影响,可以选末尾的。 从左往右找一个比 pivot 大的元素 L,再从右往左找一个比 pivot 小的元素...
二叉查找树
二叉查找树 二叉查找树左边的子节点一定比父节点小,右边的子节点一定比父节点大。 二叉查找树的性质 最小结点在左下的末端。如上图中的 3。 最大结点在右下的末端。如上图中的 28。 添加数据 从根结点开始寻找插入位置,将想要添加的数据和结点比较。如果更小,就往左移;如果更大,就往右移。直到前面没有结点了,就把添加的数据作为叶子结点添加到二叉查找树中。 ...
归并排序
归并排序 把序列递归的分成长度相同的两个子序列,直到无法继续往下分时,就对子序列进行归并,即递归的把排好序的子序列合并成一个有序序列。 时间复杂度 归并排序的运行时间 $O(nlogn)$ - 即树的高度
堆排序
优先队列 优先队列可以自由添加数据,但取出数据时要从最小值开始按顺序取出。 堆是最高效的优先队列(Priority Queue) 小根堆 小根堆的子结点必定大于父结点,最小值存储在根结点中。 堆是一种完全[[二叉树]]结构,可以用一维数组表示,这样会让效率更高,因为内存是连续的。 堆构建完成后能够得到一个头顶着最大值或最小值的数据结构,这种数据结构更有利于获取...
计算机网络 应用层
Web World Wide Web,万维网,是因特网上最主要的部分。 Web协议 [[HTTP]] - 超文本传输协议,万维网的主干 FTP - 文件传输协议 SVN - svn版本工具传输协议,也是基于万维网的 File - 文件协议 URL 协议://主机:端口/路径 统一资源定位符:uniform resource locator 其他因特网...