
算法
jclih
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
递归(一)
1 一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称作递归函数2 在程序设计语言中,实现递归要用到栈3 递归是程序设计中一个强有力的工具。其一,有很多数学函数是递归定义的,如阶乘函数: 1 若n=0Fact(n)={ n*Fact(n-1). 若n>0其二,有的数据结构,如二叉树...原创 2018-02-09 15:49:48 · 494 阅读 · 0 评论 -
递归(二)
1 这一篇讲述如何利用“分治法”(Divide and Conquer)进行递归算法设计的方法2 通常可以先写出问题求解的递归定义。和第二数学归纳法类似,递归定义由基本项和归纳项两部分组成。2.1 递归定义的基本项描述了一个或几个递归过程的终结状态。虽然一个有限的递归(且无明显的迭代)可以描述一个无限的计算过程,但任何实际应用的递归过程,除错误情况外,必定能经过有限层次的递归而终止。所谓终结状态指...原创 2018-02-09 16:22:47 · 534 阅读 · 0 评论 -
递归(三)
本篇例子的完整代码地址:求集合幂集 git@github.com:hglspace/PowerSet.git四皇后问题的解 git@github.com:hglspace/FourQueens.git1 在程序设计中,有相当一类是求一组解,或求全部解或求最优解,例如八皇后问题,不是根据某种确定的计算法则,而是利用试探和回溯(Backtracking)的搜索技术求解。回溯法也是设计递归过程的一种重要...原创 2018-02-21 22:00:31 · 275 阅读 · 0 评论 -
快速排序(Java)
一、概念 快速排序(Quick Sort)是对起泡排序的一种改进。它的基本思想是,通过一趟排序将待排序的记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 二、图解 三、Java代码package com.hgldp.web;import java.util.Arrays;p...原创 2018-07-07 17:38:07 · 476 阅读 · 0 评论 -
二叉排序树删除某个结点保持排序树特性的Java算法实现
一、二叉排序树的定义 二叉排序树是一棵空树;或者是具有下列性质的二叉树: 1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 3)它的左右子树也分别为二叉排序树 图 二、二叉排序树删除一个结点的情况讨论 待删除的结点记为 p,父结点为f,且p为f的左子树 ...原创 2018-08-19 10:38:20 · 2760 阅读 · 2 评论 -
银行家算法(java实现)--避免进程死锁
public class Banker {/* * 资源的种类 */private final int RESOUCE_NUM = 3;/* * 进程的数量 */private final int PROCESS_NUM = 3;/* * 可获取每种资源的数量的数组 */private int[] available = new int[RESOUCE_NUM];/...转载 2018-12-09 13:46:56 · 1501 阅读 · 0 评论