
算法
码农下的天桥
混口饭吃。。。。
展开
-
【算法总结】归并排序总结
【前言】归并排序的思想是,将一个数组划分成为可以轻易排序的最小部分(最小部分的标准通常是1个数或者两个数),对最小数组排好序后,向上合并排序数组(向上合并排序通常需要额外空间,譬如:现在两个排好序的部分:7,12和5,15,我们将它们合并成为5,7,12,15---存储在临时区,然后再放回原本数组里面,然后将这部分作为合并的部分再向上递归合并)。核心思想便是如此。当然,在用代码实现的时候会出现原创 2013-09-16 11:16:07 · 1650 阅读 · 0 评论 -
【算法】java版红黑树算法的完整实现及swing界面演示程序
【前言】当初因为觉得数据结构及算法是码农的基础(正如锄头对农民一样)才决定话费时间来补习的,但是真正自行实现算法及算法的可视化演示的时候才发现难度是如此之大。算法写起来慢,swing界面写起来也慢。红黑树的结构最重要就是几个规则:1、根节点为黑色,NIL(空节点,叶节点,每一条路径最后必然会有一个叶节点作为结尾)节点为黑色。2、红色节点不能相邻,从根节点到每一个原创 2013-08-30 11:16:58 · 4457 阅读 · 2 评论 -
【算法】归并排序的java实现
在编写代码前,请大家看看归并排序的思想。百度百科--归并排序下面是根据这个思想而编写的算法。package MergeSort;public class MergeSortMain { public static void main(String[] args){ int[] theArr=new int[]{98,75,14,15,1原创 2013-09-10 21:26:21 · 653 阅读 · 0 评论 -
【算法】B+树的研读及实现(2)---java版核心代码
【前言】假如大家已经弄懂了b树及b+树那么恭喜你们了,因为我觉得,b树及b+树是文件系统尤其是数据库优化的关键。这里预告一下,下一篇课题(也不能说课题,只能用“业余研究题目”这种称呼)是R树,R树似乎是多维的B+树,各位假如也希望弄懂R树的话,请先好好看看b+树。【代码】package BPlusTree;import java.util.ArrayLi原创 2013-09-06 21:57:38 · 7400 阅读 · 7 评论 -
【算法】R树的研究及实现(1)
【此坑待埋】原创 2013-09-06 22:00:19 · 3255 阅读 · 0 评论 -
【算法总结】快速排序算法
dfdf原创 2013-09-16 10:56:24 · 979 阅读 · 0 评论 -
【算法总结】堆及堆排序总结
此坑待埋。原创 2013-09-16 11:19:31 · 1349 阅读 · 0 评论 -
【算法】堆,最大堆(大顶堆)及最小堆(小顶堆)的实现【2】---软件截图及算法代码
ok,先上截图:下面将演示堆的插入操作【插入关键字18,17,15,19】【插入关键字16,12,21】【插入关键字27】【插入关键字13】【插入关键字11】插入操作都大同小异。然后进行删除操作:【删除关键字】【删除关键字】【删除关键字】原创 2013-09-15 21:14:06 · 3647 阅读 · 0 评论 -
【算法总结】KMP算法及java实现
【参考资料】关于KMP算法,大家可以查阅博客园的这篇文章:阮一峰:字符串匹配的KMP算法这篇解释文章相当简明,当然july的这篇文章也可以读一读:六之续、由KMP算法谈到BM算法【算法原理】这里抄录第一篇参考资料的例子:下面,我用自己的语言,试图写一篇比较好懂的 KMP 算法解释。 1. 首先,字符串"BB原创 2013-09-23 16:10:01 · 13739 阅读 · 7 评论 -
【算法】斐波那契列数的求和
前两个数之和等于第三个数,第二个数与第一个数相等,这是斐波那契数列的规则,下面用实现一下这种规则,当然,限定计算第一百个数,第一个数为1.当然书上有这种规则的实现,但是假如要打印全部数组的话,用递归的效率很抓急,直接用数组一次遍历就ok了。package Chacter4;public class RecursionFibonacci { public static voi原创 2013-08-24 19:31:25 · 2259 阅读 · 0 评论 -
【算法】中缀表达式、后缀表达式的java实现几网上观点的勘误。
首先,大家可以看看数据结构与算法,或者大话数据结构之类的堆栈的章节,知道中缀表达式、后缀表达式概念及使用stack转换及计算的原理再看程序实现比较好。我提一下,除了可以用stack来将中缀表达式转换成后缀表达式,也可以用二叉树来令前缀表达式、中缀表达式、后缀表达式相互转换,具体可以看这个例子:前/中/后缀表达式的转换很简单对吧?但是如何构建一颗二叉树是一个大问题。这个问原创 2013-08-25 12:41:01 · 1743 阅读 · 0 评论 -
【算法总结】B树总结
【参考资料】从B树、B+树、B*树谈到R 树【B树解释】B树是一棵树,不同的是该树的最多有m个子节点,至少floor(m/2)个子节点(根节点除外,根节点最少可以有两个子节点。),但是里面包含关键字数量比当前的子节点少1,在没有子节点的情况下,关键字数量在 floor(m/2)-1到m-1之间。左边子节点的关键字都比父亲节点对应的关键字小,右边子节点的关键字都比原创 2013-09-17 11:59:33 · 2862 阅读 · 1 评论 -
【算法总结】红黑树总结
此坑待埋原创 2013-09-16 12:19:37 · 2086 阅读 · 0 评论 -
【算法】散列表及散列函数的java简单实现
【前言】想必大家对散列表及散列函数有所了解了。当然,散列表有两个重点问题:1、如何将一个数字映射到数组下标;2、如何处理冲突问题? ok,鉴于这是演示简单的哈希表,散列函数这样定义:index=key%16;而冲突的处理如何:当映射到的位置一样,就将相关数据压入同一位置的链表。 【补充】遗憾的是没有在大数据下面测算效率。 核心代码如下: pa原创 2013-09-11 18:01:49 · 4527 阅读 · 0 评论 -
【算法】红黑树的讲解及插入删除算法实现原理
此坑待埋。-----20130823转载 2013-08-27 18:01:16 · 5157 阅读 · 3 评论 -
【算法】快速排序的一个实现
【前言】快速排序的精髓在于每次都将某一部分按照某个pivot的大小排列,譬如:一个数组:4 7 15 9 6 8 5 7 6 1 11 3 10 我们按照数组index=7的元素即【7】来划分左右两边的数组,左边数组小于7,右边数组大于7,然后可以得到:每次交换后的结果:交换结果:4 6 15 9 7 8 5 7原创 2013-08-11 21:22:18 · 911 阅读 · 0 评论