
算法
文章平均质量分 94
coding_1994
来日方长
展开
-
算法的时间复杂度和空间复杂度计算
1、算法时间复杂度 1.1算法时间复杂度的定义: 在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n)= O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称为时间复杂度,是一种“渐进表示法”。其中f(n)是问题规模n的某个函数。 用大写O()来体现算法时间复杂度的记法,我们称之为大O记法。 一般情况...转载 2021-01-20 00:04:58 · 390 阅读 · 0 评论 -
HashSet,TreeSet和LinkedHashSet的区别
HashSet,TreeSet和LinkedHashSet的区别Set接口Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false。Set判断两个对象相同不是使用==运算符,而是根据equals方法。也就是说,只要两个对象用equals方法比较返回true,Set就不 会接受这两个对象。HashSetHashSet有以下特点 不能保证元素的排列顺序,顺序有可能...转载 2018-06-03 00:19:30 · 167 阅读 · 0 评论 -
哈希表(散列表)原理详解
什么是哈希表? 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。记录的存储位置=f(关键字)这里的对应关系f称为散列函数,又称为哈希(Hash函数),采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间...转载 2018-06-02 16:34:18 · 167 阅读 · 0 评论 -
HASH表的实现(拉链法)
HASH表的实现(拉链法) 本文的一些基本概念参考了一部分百度百科,当然只保留了最有价值的部分,代码部分完全是自己实现!简介哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。它通过把关键码值映射到表中一个位置来访问记录,有点类似于数组,并且能在O(1)(冲突...转载 2018-07-07 19:02:30 · 5727 阅读 · 0 评论 -
堆排序
堆排序 预备知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图: 同时,我们对堆中的结点按层...转载 2018-08-14 20:45:36 · 684 阅读 · 0 评论 -
什么是时间复杂度
什么是时间复杂度 作为一个处在学习之路的渣渣,被一个时间复杂度的题给难倒了,然后我就思考了一下什么是时间复杂度。虽然在学校学习了了算法的课程,但是仔细一想,对于时间复杂度还真是不怎么懂。于是重新学习,记下自己的一些理解。 1.时间复杂度 提到时间复杂度,第一时间想到的是算法,简单说,算法就是你解决问题的方法,而你用这个方法解决这个问题所执行的语句次数,称为语句频度或者时间频度,记为T(...转载 2018-10-06 09:21:05 · 671 阅读 · 0 评论