博客专栏  >  编程语言   >  Java与算法

Java与算法

常用算法、数据结构的介绍和Java版实现代码

关注
7 已关注
13篇博文
  • Java与算法之(13) - 二叉搜索树

    查找是指在一批记录中找出满足指定条件的某一记录的过程,例如在数组{ 8, 5, 12, 2, 6, 10, 14, 1, 3, 4, 7, 9, 11, 13, 15 }中查找数字15,实现代码很简单...

    2016-09-28 16:13
    4816
  • Java与算法之(12) - 老鼠再闯迷宫(广度优先算法)

    贪吃的小老鼠又回来了,这次有什么新的办法吃到奶酪呢? 规则不变,只能上下左右在格子内移动。 因为上次的深度优先算法让老鼠走了不少冤枉路,这次老鼠带来了帮手探路鼠。探路鼠的使用规则如下: 小老鼠按右...

    2016-09-23 10:08
    2291
  • Java与算法之(11) - 合并排序

    天下事,合久必分,分久必合。合并排序的基本思想正是先分再合。 例如对3, 1这个数列排序,首先是分,分为3和1两个数列,然后再合并并排序。合并需要额外的辅助空间,即建立一个两个数列长度之和的空数组用...

    2016-09-21 15:11
    1723
  • Java与算法之(10) - 希尔排序

    希尔排序是插入排序的一种,是直接插入排序的改进版本。 对于上节介绍的直接插入排序法,如果数据原来就已经按要求的顺序排列,则在排序过程中不需要进行数据移动操作,即可得到有序数列。但是,如果最初的数据是按...

    2016-09-20 16:21
    2317
  • Java与算法之(9) - 直接插入排序

    直接插入排序是最简单的排序算法,也比较符合人的思维习惯。想像一下玩扑克牌抓牌的过程。第一张抓到5,放在手里;第二张抓到3,习惯性的会把它放在5的前面;第三张抓到7,放在5的后面;第四张抓到4,那么我们...

    2016-09-19 14:06
    2129
  • Java与算法之(8) - 堆排序

    堆是一种特殊的完全二叉树,其特点是所有父节点都比子节点要小,或者所有父节点都比字节点要大。前一种称为最小堆,后一种称为最大堆。 比如下面这两个: 那么这个特性有什么作用?既然题目是堆排序,那么肯定...

    2016-09-18 18:13
    5088
  • Java与算法之(7) - 完全二叉树

    树 下图是一“棵”树的样子。树这个名称起的很形象,整个数据结构由根、枝、叶组成,其中1为根节点,2、3是1的子节点,4、5、6、8、9、10这几个没有子节点的节点称为叶节点。 节点的度:一个节点的...

    2016-09-14 14:25
    5239
  • Java与算法之(6) - 八皇后问题

    在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 (文字和图片来自百度百科) 如果动手来摆放皇后,可以用这样一种思路:在最...

    2016-09-06 18:23
    5734
  • Java与算法之(5) - 老鼠走迷宫(深度优先算法)

    小老鼠走进了格子迷宫,如何能绕过猫以最短的路径迟到奶酪呢? 注意只能上下左右移动,不能斜着移动。 在解决迷宫问题上,深度优先的思路是沿着一条路一直走,遇到障碍或走出边界再返回尝试别的路径。 首先用一...

    2016-09-06 13:47
    8880
  • Java与算法之(4) - 数字全排列

    全排列是指n个数(或其他字符)所有可能的排列顺序,例如1 2 3三个数字的全排列是 1 2 3, 1 3 2, 2 1 3, 2 3 1, 3 1 2, 3 2 1 那么问题来了,任意输入一个大于1...

    2016-08-31 16:29
    6740
  • Java与算法之(3) - 斐波那契数列

    斐波那契数列问题:如果一对兔子每月能生1对小兔子,而每对小兔在它出生后的第三个月里,又能开始生1对小兔子,假定在不发生死亡的情况下,由一对初生的兔子开始,1年后能繁殖出多少对兔子?

    2016-08-30 17:19
    6132
  • Java与算法之(2) - 快速排序

    快速排序的基本思路是,每次选定数列中的一个基准数,将小于基准数的数字都放到基准数左边,大于基准数的数字都放到基准数右边。然后再分别对基准数左右的两个数列分别重复以上过程。仍以4 3 6 2 7 1 5...

    2016-08-30 15:11
    5452
  • Java与算法之(1) - 冒泡排序

    冒泡排序法的原理是,每次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。 例如对4 3 6 2 7 1 5这7个数字进行从小到大的排序,从最左侧开始,首先比较4和3 因为是从小到大排序,4...

    2016-08-29 21:35
    5524
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部