
数据结构
文章平均质量分 91
数据结构
进朱者赤
阿里非典型程序员一枚:微信公众号同名,记录平平无奇程序员在大厂的打怪升级之路。
Java、大数据、数据结构算法
展开
-
【经典算法】LeetCode 136:只出现一次的数字(Java/C/Python3实现含注释说明,Easy)
方式优点缺点时间复杂度空间复杂度其他异或运算代码简洁,效率高不直观,需要理解异或运算的特性O(n)O(1)适用于数字类型的题目哈希表思路直观,易于理解空间复杂度较高,需要额外的存储空间O(n)O(n)适用于各种数据类型的题目。原创 2024-04-16 15:07:30 · 1296 阅读 · 4 评论 -
数据结构——栈与队列
东北林业大学实验二实验名称:栈、队列 实验室名称:905 实验台号:18 学生姓名:** 专业班级:2016级计算机科学与技术四班 指导教师:王阿川(教授) 实验日期: 2018-04-25 一、实验目的1.掌握栈、队列的思想及其存储实现。2.掌握栈、队列的常见算法的程序实现。二、实验仪器及环境: PC计算机;windows 10操作系统、codeblocks17.12;三、实...原创 2018-05-20 17:28:29 · 555 阅读 · 0 评论 -
解决哈希冲突的方法
通过构造性能良好的哈希函数,可以减少冲突,但一般不可能完全避免冲突,因此解决冲突是哈希法的另一个关键问题。创建哈希表和查找哈希表都会遇到冲突,两种情况下解决冲突的方法应该一致。下面以创建哈希表为例,说明解决冲突的方法。原创 2019-09-21 11:24:55 · 2391 阅读 · 0 评论 -
B树,B+树,B-树,B*树
即二叉搜索树:1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左儿子或右儿子的指针为空,则报告找不到相应的关键字;如果B树的所有非叶子结点的左右子树的结点数目均保持差不多(平衡),那么B树的搜索性能逼近二分查找;原创 2019-08-30 18:39:26 · 619 阅读 · 1 评论 -
排序算法记忆口诀(偏方)
选泡插,快归堆希桶计基,n方n老n一三,对n加kn乘k,不稳稳稳不稳稳,不稳不稳稳稳稳原创 2019-08-28 15:44:02 · 3452 阅读 · 0 评论 -
十大经典排序算法(动图演示)
0.1 算法分类比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。0.2 算法复杂度0.3 相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。时间复杂度:对排序数据的总的操作次数。原创 2019-09-21 11:24:08 · 2072 阅读 · 2 评论 -
【排序】快速排序
思路分析:快速排序采用双向查找的策略,每一趟选择当前所有子序列中的一个关键字作为枢纽轴,将子序列中比枢纽轴小的前移,比枢纽轴大的后移,当本趟所有子序列都被枢轴按上述规则划分完毕后将会得到新的一组更短的子序列,他们将成为下趟划分的初始序列集。时间复杂度:最好情况(待排序列接近无序)时间复杂度为O(nlog2n),最坏情况(待排序列接近有序)时间复杂度为O(n2),平均时间复杂度为O(nlog...转载 2019-08-14 15:10:21 · 371 阅读 · 0 评论 -
数据结构 栈与队列
1. 采用链式存储实现栈的初始化、入栈、出栈操作。存储结构:typedef int Status;typedef int SElemType;typedef struct SNode{ SElemType data; struct SNode *next;}SNode,*LinkStack;程序:#include<iostream>using namespace ...原创 2019-07-23 15:31:44 · 340 阅读 · 0 评论 -
冒泡排序
/** * 冒泡排序 */import java.util.Scanner;/** * @author zhujin111@jd.com * @version 1.0 * @createDate 2019/06/20 10:57 */public class BubbleSort { public static void main(String[] args) {...原创 2019-06-20 16:00:40 · 115 阅读 · 0 评论 -
B树,B-树和B+树的区别
B树即二叉搜索树:1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左儿子或右儿子...转载 2019-05-08 08:40:28 · 148 阅读 · 0 评论 -
十大经典排序算法最强总结
https://blog.youkuaiyun.com/hellozhxy/article/details/79911867转载 2019-04-19 10:04:59 · 283 阅读 · 0 评论 -
数据结构—排序算法
O(n²)O(n²)O(n)O(1)稳定O(n²)O(n²)O(n)O(1)不稳定O(n²)O(n²)O(n)O(1)稳定O(n^3/2)O(n²)O(n)O(1)不稳定O(nlogn)O(nlogn)O(nlogn)O(n)稳定O(nlogn)O(nlogn)O(nlogn)O(1)不稳定O(nlogn)O(n²)O(nlogn)O(nlogn)不稳定O(n+k)O(n+k)O(n+k)O(n+k)稳定O(n+k)O(n²)O(n)原创 2018-07-02 15:19:26 · 631 阅读 · 1 评论