
算法
文章平均质量分 94
有点浪的程序员
非淡泊无以明志,非宁静无以致远
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
证明一棵树为满二叉树
问题描述传入树的根结点,判断当前树是否是满二叉树。定义树结点的实体类public class TreeNode { private TreeNode leftTreeNode;//左子树 private TreeNode rightTreeNode;//右子树 private Object data;//数据域 public TreeNode(){} public TreeNode(Object data){ this.data = data; } public Tre原创 2020-07-06 17:26:22 · 533 阅读 · 0 评论 -
复杂的二分查找
1. 简介 本篇文章主要讲稍微复杂一点的二分查找,这里的复杂是指在存在重复元素的有序数组中查找符合要求的值,主要探讨4种查找的情况。二分查找,查找第一个等于给定值元素的索引二分查找,查找最后一个等于给定值元素的索引二分查找,查找第一个大于等于给定值元素的索引二分查找,查找最后一个小于等于给定值元素的索引2.内容 ...原创 2020-04-06 22:24:35 · 250 阅读 · 0 评论 -
简单的二分查找
1.简介 这里所讲解的简单的二分查找指的是在一个有序无重复元素的int类型的数组中查找需要的元素。2.代码 public int binarySearch(int[] a ,int value){ int low = 0, hi = a.length - 1; while(low <= hi){ int mi...原创 2020-03-01 20:51:38 · 300 阅读 · 0 评论 -
冒泡、选择、插入、希尔、归并、快速排序
1.冒泡排序原创 2019-12-29 16:18:06 · 336 阅读 · 0 评论 -
Dijkstra双栈算数表达式求值算法的过程与分析
过程将操作数压入操作数栈;将运算符压入运算符栈;忽略左括号;在遇到右括号时,弹出一个运算符,弹出所需数量的操作数,并将运算符和操作 数的运算结果压入操作数栈。 举例分析计算(1+((2+3)*(4*5))) ops—运算符栈 vals—操作数栈依次读取输入的字符压入栈中 遇到“)”,进行弹栈操作 计算:v=2+3=5;将运算符和操作数的运算结果压入操作数栈 继续读取进行压栈原创 2017-10-15 17:01:29 · 410 阅读 · 0 评论 -
求两个数的最大公约数和最小公倍数
计算两个非负整数p和q的最大公约数:若q是0,则最大公约数为p。否则,将p除以q得到余数r,p和q的最大公约数即为q和r的最大公约数。 java语言实现: 求最大公约数public static int gcd(int p, int q){ if(q==0) return p; int r = p % q; return gcd(q,r); }求最小公倍数...原创 2017-10-15 20:46:13 · 872 阅读 · 0 评论 -
斐波那契数列
摘要之前面试的时候,被面试官出了一道编程题,给定一些数 1,3,4,7,11,18…..即f(n) = f(n-1)+f(n-2),让我写个程序求第n个数的值,当是脑海里的第一想法就是递归,但是由于是手写代码,有些地方没处理好,面试回来后我觉得这个题我之前应该见过,翻了一下面试宝典,果然有。为了避免重蹈覆辙,我整理了一下代码。代码package com.chen.prac;p...原创 2018-08-23 23:50:30 · 191 阅读 · 0 评论