算法-java
小猪快跑22
专注于Java以及Android
展开
-
字符串匹配算法之——BM算法
字符串匹配的暴力算法就不细说了,主要思想就是从头比较模式串和主串,如果当前的字符匹配就比较下一位;如果不匹配则模式串向后移动一位和主串的下一位开始比较。我们下面来讲BM的算法流程,最后会贴出代码。德克萨斯大学的 Robert S. Boyer 教授和 J Strother Moore 教授发明了这种算法 称为BM算法。BM算法有个不同点:让"主串" 与 “模式串” 头部对齐,从尾部开始比较。...原创 2020-03-06 18:25:22 · 437 阅读 · 0 评论 -
Java判断2个数组里是否包含相同的元素(长度一致)
这个很简单就直接贴代码啦!!! public static boolean isSameArray(String[] src, String[] desc) { int srcLength = src.length; int descLength = desc.length; if (descLength != srcLength) {原创 2017-04-20 17:43:30 · 7331 阅读 · 2 评论 -
String 类的equal 和 == 的区别?
equals方法和==的区别 首先大家知道,String既可以作为一个对象来使用,又可以作为一个基本类型来使用。这里指的作为一个基本类型来使用只是指使用方法上的,比如String s = “Hello”,它的使用方法如同基本类型int一样,比如int i = 1;,而作为一个对象来使用,则是指通过new关键字来创建一个新对象,比如String s = new String(“Hello”)。但原创 2017-06-05 10:41:37 · 2325 阅读 · 0 评论 -
Java堆排序
package com.example.test_java.sort;import java.util.Arrays;/** * Created by za-zhujiangtao on 2019/3/6. * 堆排序 * <p> * 堆是一棵顺序存储的完全二叉树。完全二叉树中所有非终端节点的值均不大于(或不小于)其左、右孩子节点的值。 * 其中每个节点的值小于等于其...原创 2019-03-06 16:42:28 · 422 阅读 · 0 评论 -
海量数据找到最大的100个数据
前言:海量数据指的是数据量非常大,亿级的数据。如果是 int 型数据,int型数组占4个字节的内存,1亿个int型数据就得占用近400M的内存,计算机性能差的话很难一次性读入然后排序。所以一般的靠排序来做这道题是很尴尬的。这里用最小堆来解决,上篇讲了大顶堆的原理及大顶堆的排序,这里由于是找最大的100条数据,所以要用到小顶堆。小顶堆的满足条件如下:1.堆顶的元素最小2. 左右子节点的值都...原创 2019-03-07 16:43:11 · 2485 阅读 · 0 评论