自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jbcsimple

算法与数据结构、编程、机器学习与数据挖掘

  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 二叉树相关问题编程实现(1)

二叉树相关问题编程实现

2016-09-23 19:17:06 479

原创 实现Huffman树

为了使得WPL即带权的外部结点路径最小,基本原则是:让权值大的结点离根近一些,权值小的结点离根远一些。实现方法:每次从未加入到树中的结点中选择两个权值最小的,即去权值最小和次小的结点作为左右子结点产生父结点,父结点的权值为这两个结点的权值之和,然后将父结点取代这两个结点带回去,继续循环。用数组作为存储结构。假定给定的外部结点权值数组中有m个元素,即有m个外部结点,那么内部结点就应该有m - 1个,

2016-08-30 11:13:10 463

原创 用堆实现优先队列

优先队列是一种数据结构,能够保证每次出队的是队列中优先级最高的元素(可以自己定义比较器),使用堆的堆顶元素维护这个优先级最高的元素,因为堆具有堆序性,堆顶元素要么是最小的,要么是最大的。使用数组作为存储结构。创建一个容量为MaxSum的数组,使用一个变量n记录队列中的元素个数。实现队列所具有的offer(), poll(), peek(), isEmpty()操作。(1)offer():

2016-08-30 10:35:19 1480

原创 关于有环链表的若干问题总结

1、判断一个链表是否有环public boolean hasCircle(ListNode pHead) { if(pHead == null) return false; ListNode fast = pHead, slow = pHead; while(fast != null) { if(fast.next

2016-08-17 14:16:54 404

原创 不使用循环和判断求1到n的和

使用函数指针来实现,基于递归的思路,递归头也就是递归结束条件本应该用判断语句实现,现在不可以使用判断,那就使用两个函数来实现求和,一个针对递归头的情况,一个针对递归体的情况。在java中,实现函数指针的方法就是使用接口,然后交由实现它的类去实现具体方法。然后使用多台实现函数指针的功能。具体使用什么函数,看new出来的是什么。

2016-08-15 22:02:40 605

原创 数组中只出现一次的数字

思路:(1)如果只有一个数字只出现一次,那么对所有数字做异或运算,由于一个数和自身做异或运算结果为0,而任何数字与0做异或运算结果为它本身,因此,最后的结果便是那个只出现一次的数。(2)同样对所有数字做异或运算,结果应该是两个只出现一次的数字做异或运算的结果。由于这两个数字不同,因此结果非0。不妨假设结果的二进制表示中第index位非0,那么这两个唯一出现的数字在第index位上不

2016-08-11 21:51:33 338

原创 求一个数组中的最大值和最小值,要求将比较次数减小至3N/2

1、取双元素法每次取两个元素,用较小的和最小值比较,用较大的和最大值比较,那么总共会取N/2次,每取一次会进行三次比较,第一次比较当前两个元素,第二次较小的和当前最小值比较,第三次较大的和当前最大值比较,总的比较次数便是:3N/2。需要注意的是:(1)输入数组的合法性检查(空指针或者数组的长度为0);(2)边界检查:输入数组只有1个元素,那么最小值和最大值均为该元素;(3)初始

2016-08-10 10:06:18 4127

原创 将二叉搜索树转换成升序的双向链表

分析:根据二叉搜索树:左 数据域和左右指针域,而双向链表的结点包含数据域和指向前驱和后继的两个指针域,因此不需要创建任何新的结点,只需要在二叉树的基础上修改指针域即可。将二叉树的遍历应用到解决问题的过程中。1、递归实现(1)递归调用函数将当前根结点的左子树转换成双向链表,返回最左边的结点;(2)定位到左子树对应双向链表的最后一个结点;(3)如果左子树不为空,那么将当前根结点

2016-08-10 09:42:02 456

转载 机器学习常见算法个人总结

机器学习常见算法个人总结(面试用)By Kubi Code 发表于 2015-08-16文章目录1. 朴素贝叶斯1.1. 工作原理1.2. 工作流程1.3. 属性特征1.4. Laplace校准(拉普拉斯校验)1.5. 遇到特征之间不独立问题1.6. 优缺点2. 逻辑回归和线性回归2.1. 梯度下降法2.2. 其他优化方法2.3. 关于LR的过拟合问题:

2016-08-10 08:44:55 747

转载 GBDT:梯度提升决策树

GBDT:梯度提升决策树字数2887 阅读1208 评论0 喜欢2综述  GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力较强的算法。  

2016-08-10 08:42:41 6677

原创 编程基本功与技巧小酌

本文为编程小酌,研究了一些经典的编程题目,如:二叉树、序列的排列组合、数组、链表、栈和队列、位运算等等,阐述了解题思路。

2016-08-10 08:20:35 906

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除