XShowAlgorithm
用X语言描述算法
FeelTouch Labs
这个作者很懒,什么都没留下…
展开
-
JavaShowAlgorithm-二分查找BinarySearch算法
1.二分查找又称折半查找,它是一种效率较高的查找方法。2.二分查找要求:(1)必须采用顺序存储结构 (2).必须按关键字大小有序排列3.原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后;将要查找的值和数组的中值进行比较,若小于中值则在中值前 面找,若大于中值则在中值后面找,等于中值时直接返回。然后依次是一个递归过程,将前半部分或者后半部分继续分解为三转载 2017-10-27 18:49:27 · 468 阅读 · 0 评论 -
JavaShowAlgorithm-找出数组中相同的元素
import java.util.ArrayList; public class Test { private String[] data = { "A", "A", "B", "C", "C", "D", "D", "D" }; // 存储分类好的数据元素。 private Arr转载 2017-10-27 18:59:51 · 565 阅读 · 0 评论 -
JavaShowAlgorithm-二叉树基础
一、概述树结构大部分操作平均运行时间都为O(logN)二、树的定义树是由n(n>=1)个有限节点组成一个具有层次关系的集合。每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树。三、树的构造每个节点有一个链指向兄弟,另一个链指向儿子。package com.algorithm.转载 2017-10-27 19:12:56 · 417 阅读 · 0 评论 -
JavaShowAlgorithm-全排列算法递归和字典序实现
全排列算法-递归&字典序实现全排列: 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。 例如: 1 、2 、3三个元素的全排列为:{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}。解法1(递归) 如下图:要对1、2、3、4进行排转载 2017-10-29 00:03:06 · 489 阅读 · 0 评论 -
JavaShowAlgorithm-Add Two Numbers 链表数相加
Add Two NumbersYou are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and原创 2017-11-12 11:35:55 · 474 阅读 · 0 评论 -
JavaShowAlgorithm-Binary Tree Longest Consecutive Sequence
Given a binary tree, find the length of the longest consecutive sequence path.The path refers to any sequence of nodes from some starting node to any node in the tree along the parent-child connecti原创 2017-11-12 12:07:59 · 496 阅读 · 0 评论 -
JavaShowAlgorithm-Binary Tree Convert double direction LinkedList
引言 自己觉得对二叉树了解的不是很多,所以想专门练习一下这方面的问题,剑指Offer中有一道题是将二叉搜索树转换为双向链表,开始的时候照着书上的思路去做,最后发现问题很多,看来这本书也有很多问题啊,原因是Java和C++还是有很多不同的,特别是对对象的引用方面。自己在红色部分标注出了问题的所在,希望能给之后遇到同样问题的人一点帮助 分析问题 首先需要明白二叉搜索转载 2017-11-12 15:13:41 · 422 阅读 · 0 评论 -
JavaShowAlgorithm-使用2个队列实现栈
队列是先进先出,而栈是先进后出;考虑到我们取栈顶元素的便利性,我们在实现时使得栈顶等于队列头;由于栈的pop弹出栈顶元素,而队列的pop也是弹出栈顶元素,所以我们需要特别处理的是插入操作。由于往栈中添加元素相当于往队列头添加元素,因此我们需要在两个队列中进行元素的转移,比较简单的实现是:1.q1和q2在任一时刻至少有一个为空,即如果有元素,所以元素只在同一个队列中。原创 2017-11-19 19:40:02 · 424 阅读 · 0 评论 -
JavaShowAlgorithm-优化的插入排序带着二分查找
二分排序是指利用二分法的思想对插入排序进行改进的一种插入排序算法,不同于二叉排序,可以利用数组的特点快速定位指定索引的元素。算法思想二分法插入排序是在插入第i个元素时,对前面的0~i-1元素进行折半,先跟他们中间的那个元素比,如果小,则对前半再进行折半,否则对后半进行折半,直到left>right,然后再把第i个元素前1位与目标位置之间的所有元素后移,再把第i个元素放在原创 2017-11-19 22:30:37 · 435 阅读 · 0 评论 -
JavaShowAlgorithm-使用2个栈实现队列
思路一:我们设定s1是入栈的,s2是出栈的。入队列,直接压到s1即可出队列,先把s1中的元素倒入到s2中,弹出s2中的栈顶元素;再把s2的剩余元素全部倒回s1中。缺点:每次只要出栈一个元素就要将元素倒来倒去,麻烦!!!思路2:入队列时:如果s1为空,把s2中所有的元素倒出原创 2017-11-19 22:36:30 · 439 阅读 · 0 评论