博客专栏  >  编程语言   >  数据结构与算法(java)

数据结构与算法(java)

学好数据结构和算法,与大家一起分享

关注
7 已关注
22篇博文
  • 动态规划--最长公共子序列

    1、填值,递增填 ·长度分别为m=len1+1和n=len2+1; ·创建1个二维数组L[m.n]; ·初始化L数组内容为0 · i和j分别从1开始,i++,j++循环: - 如果str1[...

    2016-07-19 22:10
    814
  • 动态规划--最长公共子串

    找两个字符串的最长公共子串,这个子串要求在原字符串中是连续的。其实这又是一个序贯决策问题,可以用动态规划来求解。我们采用一个二维矩阵来记录中间的结果。这个二维矩阵怎么构造呢?"bab"和"caba"(...

    2016-07-19 20:42
    1381
  • 动态规划--连续子序列的最大和

    给定k个整数的序列{N1,N2,...,Nk },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 注:为方便起见,如果所有整数均为负数,则最大子序列和为0。 算法一...

    2016-07-18 21:49
    2742
  • Java中HashMap底层实现原理(JDK1.8)源码分析

    这几天学习了HashMap的底层实现,但是发现好几个版本的,代码不一,而且看了Android包的HashMap和JDK中的HashMap的也不是一样,原来他们没有指定JDK版本,很多文章都是旧版本JD...

    2016-06-05 11:13
    10411
  • 基于快速排序思想的三个算法题

    一,最小的k个数 输入n个数,找出其中最小的k个数,例如输入4,5,1,6,2,7,3,8,个数字,则最小的数字是1,2,3,4 基于O(n)的算法,可以用基于Partion函数解决这个问题,如果基于...

    2016-05-22 20:30
    3798
  • Java二叉树的递归,非递归遍历,高度,节点数,叶子节点数

    import java.util.LinkedList; import java.util.Queue; import java.util.Stack; public class Main { ...

    2016-05-17 19:37
    4489
  • 用结点实现链表LinkedList,用数组和结点实现栈Stack,用数组和结点链表实现队列Queue

    一,用结点实现链表LinkedList,不用换JavaAPI的集合框架 import java.util.Scanner; public class Main { public static...

    2016-05-06 14:03
    834
  • Java集合中的排序API分析

    1,Arrays类中的静态排序API Arrays.sort(int[] a)中的排序是用的是快速排序,时间复杂度是O(nlogn) Arrays.sort(T[],Comparator c)使...

    2016-04-08 22:20
    1186
  • 数据结构之排序算法(五)-直接插入排序,希尔排序,直接选择排序

    直接插入排序:时间复杂度:O(n^2) 基本算法思路是:把后面待排序的记录按其关键字的大小逐个插入到一个已经排好序的有序序列中,直到所有记录插完为止,得到一个新的有序序列。(无序插入前面有序) 算法步...

    2016-04-06 11:24
    1021
  • 数据结构之排序算法(四)-归并排序

    归并算法排序的思想:把原始数组分成若干子数组,对每一个子数组进行排序,继续把子数组与子数组合并,合并后仍然有序,直到全部合并完,形成有序的数组。 总结一句话就是:将数组不断的分成两半,直到每个子数组...

    2015-12-25 15:38
    1219
  • 数据结构值排序算法(三)-快速排序

    基本思想: 快速排序采用的思想是分治思想。 第一趟排序:快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元...

    2015-12-23 11:17
    2873
  • 数据结构之排序算法(二)-冒泡排序及改进

    冒泡排序算法需要遍历几次数组。每次遍历都要比较连续相邻的元素,如果某一对相邻元素是降序,则互换它们的值,否则,保持不变。由于较小的值像“气泡”一样逐渐浮想顶部,而较大的值沉向底部,所以叫冒泡排序。 ...

    2015-12-21 15:10
    1795
  • 数据结构之排序算法(一)-堆排序

    继上篇文章讲到堆的实现之后http://blog.csdn.net/tuke_tuke/article/details/50357939,下面可以使用堆来实现堆排序。 在堆的基础上实现堆排序的思路很...

    2015-12-21 14:03
    1296
  • 数据结构-二叉树和二叉查找树

    先按树-二叉树-二叉查找树的顺序解释会比较清楚。 一,树 树(Tree)是n(n≥0)个结点的有限集。在任意一棵非空树中: (1)有且仅有一个特定的被称为根(Root)的结点; (2)当n>1...

    2015-12-20 17:44
    1746
  • 数据结构-堆实现优先队列(java)

    队列的特点是先进先出。通常都把队列比喻成排队买东西,大家都很守秩序,先排队的人就先买东西。但是优先队列有所不同,它不遵循先进先出的规则,而是根据队列中元素的优先权,优先权最大的先被取出。这就很像堆的特...

    2015-12-19 15:56
    2517
  • 数据结构-堆的实现

    堆本质是一棵二叉树,其中所有的元素都可以按全序语义进行比较。用 堆来进行存储需要符合以下规则: 1.元素可比较性:数据集中的元素可以进行比较,就是要实现Comparable接口;。 2.节点最大/...

    2015-12-19 14:13
    1403
  • 数据结构-队列

    栈是“后进先出”(LIFO,Last InFirst Out)的数据结构,与之相反,队列是“先进先出”(FIFO,First InFirst Out)的数据结构。 队列特性: 下面我们使用...

    2015-12-17 16:34
    590
  • 数组线性表ArrayList的内部实现

    线性表是按顺序存储数据是常用的一种数据结构。大多数线性表的典型操作是: 1,初始化线性表 2,判断表是否为空 3,求线性表的长度 4,读取线性表中的第i个元素 5,查找满足条件的数据元素 ...

    2015-09-05 11:19
    588
  • 链表用java实现简单单链表linkedlist

    链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 每个结点包括两个部分: 1是存储数据元素的数据域data 2是存储下一个结点地址的指针域p...

    2015-12-10 20:12
    1451
  • LinkedList的双向迭代器listiterator

    import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Lis...

    2015-12-10 20:59
    1293

img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部