随笔分类 - 算法
摘要:第一次写博客,不对的地方欢迎指正以下的测试时间只是在本人的电脑上直接运行的,只是简单的对比,并不是标准的时间,可能涉及到后台程序的影响冒泡排序:时间复杂度O(n*n),可以从前向后,也可以从后向前进行排序,从后向前(自我感觉还是从后向前好,冒泡不就是向上冒),把最后一个和倒数第二个进行性比较,如果比...
阅读全文
摘要:二叉树是一个非常重要的数据结构,在好多的面试题中总会出现,大多数要求回答者实现在二叉树的按层遍历的同时实现换行,其实按层遍历很好想,但是要求换行输出的时候,很多时候就比较懵,无从下手,其实仔细想一想问题就会水落石出。先构建节点类TreeNode,让他有一个String类型的数据值,一个节点类型的左孩...
阅读全文
摘要:以下这道题通过一步一步的分析优化可以看出暴力搜索方法,记忆搜索方法,动态规划方法的优化过程,往往写出暴力搜索方法是比较容易的,这样一步步的分析可以更好的理解动态规划方法。题目:给定数组arr,arr中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数ai...
阅读全文
摘要:哈希函数又叫散列函数,一个哈希函数的输入域可以是非常大的范围,但是他的输出域是一个固定的范围哈希函数的性质:典型的哈希函数都拥有无限的输入值域输入值相同的时候,输出值也一样输入值不一样时,输出值可能一样,也可能不一样不同的输入值得到的哈希值,整体均匀的分布在输出域上目前应用最为广泛的hash函数是S...
阅读全文
摘要:链表是一种重要的数据结构,相比于数组,数组更像是一个顺序表,数组只要第一个元素固定,那么在他后面的元素的地址一定固定,数组在内存中是一块连续的存储区域,我们可以根据下标找到他的每个元素,这是数组和链表的一个区别链表,见名思意,一个链子连接起来的表,元素之间的联系靠的是这个链子,这也决定了链表中的每个...
阅读全文
摘要:为什么要有二叉树的序列化和反序列化,因为我们构造的二叉树,都是存放在计算机的内存中,但是我们想要根据记录重新构造出二叉树就需要二叉树的序列化和反序列化,将二叉树以文件的方式存下来叫做二叉树的序列化,从文件构造出二叉树叫做二叉树的反序列化。这里说明一下满二叉树和完全二叉树的区别:满二叉树(如下图)可以...
阅读全文
摘要:栈和队列是我们接触的比较基本的数据结构,当时在学数据结构的时候,根本不懂这是什么,什么先进先出,先进后出,但是后来有一天突然就想明白了,可能对新的知识有个接触的过程。在后来的为了更好的理解栈和队列的特点,决定用java模拟栈和队列用什么来存储数据呢?数组很好,但是每次添加数据,数组的长度怎么设置,由...
阅读全文

浙公网安备 33010602011771号