- 博客(19)
- 收藏
- 关注
原创 LeetCode_03最长无重复子字符串(java)
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。例1: 输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。例2: 输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。import java.util.HashMap;public class Main { pu...
2020-04-17 18:12:11
140
原创 LeetCode_01两数之和(java)
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。例:给定 nums = [2, 7, 11, 15], target = 9,返回 [0, 1]。nums[0] + nums[1] = 2 + 7 = 9。import java.util.HashMap;public class Main { public ...
2020-04-17 16:20:02
150
原创 基数排序算法(java)_数字版
关于字符串的基数排序参考字符串的基数排序。数字数组的基数排序:从数组各元素的第一位到各元素中的最高位遍历,在每一层遍历中进行计数排序,最后得出有序数组。import java.util.Arrays;public class Main_number{ public static int[] RadixSort(int[] arr){ //最大数的位数 ...
2020-03-21 23:14:42
114
原创 基数排序算法(java)_字符串版
基数排序:将字符串按位分割,从低到高逐位比较字符串的每一位,如果个元素的字符串长度不一样,在不足的字符串的低位补0,是基于稳定版的计数排序实现的。如果要进行位数较多的数字的比较,即要从高位到低位开始比较,位数不足的在高位补0.import java.util.Arrays;public class Main { //ascii码的取值范围 private static fi...
2020-03-21 14:22:45
640
原创 计数排序算法(java)稳定版
计数排序(稳定版):朴素版的计数排序稳定版的计数排序可以保证同值元素在遍历前后不会错乱顺序。import java.util.Arrays;public class wendingMain { public static void main(String[] args) { int[] arr = {52,59,51,57,56,53,55,54,58,66}; ...
2020-03-21 11:09:05
227
原创 桶排序算法(java)
桶排序:划分多个范围相同的区间,将数组元素逐一放入各自区间内的桶,然后在每个区间桶内自排序,最后在数组中合并。import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.LinkedList;public class Main { public ...
2020-03-20 22:15:51
88
原创 计数排序算法(java)
计数排序:获取数组中的最大值max和最小值min,创建一个(最大值-最小值+1)长度的统计数组,计算每个元素出现的次数并填入对应位置(index=max-min),最后遍历统计数组中的元素即可得到有序数组。时间复杂度为O(n+m),空间复杂度为O(m)。缺点:1.当数组的元素的差值过大时,该算法不适用,因为会造成统计数组中出现很多0值,造成内存浪费。2.当数组元素涉及到浮点数时,该算法不适用...
2020-03-20 18:47:53
178
原创 堆排序算法(java)
堆排序:先将待排序的序列构造成一个最大堆(此时,整个序列的最大值就是堆顶的根节点),将其与堆数组的末尾元素交换(此时,末尾元素就是最大值),然后将剩余的n-1个序列重新构造成一个最大堆,得到n个元素中的次最大值。如此反复执行下去,就得到一个有序序列。import java.util.Arrays;public class Main { public static void main(...
2020-03-20 17:21:47
89
原创 归并排序算法(java)
归并排序:基于分治的思想,将两个或两个以上的有序序列合并成一个新的有序序列,即把待排序序列分为若干个子序列,使每个子序列是有序的(当子序列的长度为1时,该子序列是有序的),然后再把有序子序列合并为整体有序序列。时间复杂度为O(nlogn),空间复杂度为O(n)。import java.util.Arrays;public class Main { public static void...
2020-03-20 11:45:34
113
原创 快速排序算法(java)
快速排序:基于分治的思想,将数组以基准值放置两旁,不断细化下去。时间复杂度为O(nlogn)。import java.util.Arrays;public class Main { public static void quickSort(int[] arr,int start_index,int end_index){ if (start_index >= e...
2020-03-19 22:10:47
100
原创 希尔排序算法(java)
希尔排序:基于插入排序的改进,前期以大步长分组进行插入排序,后期步长逐渐折半。时间复杂度为O(n^2)。import java.util.Arrays;public class Main { public static void sort(int[] arr) { // 从小到大排列 int n = arr.length; for (i...
2020-03-19 20:19:08
75
原创 插入排序算法(java)
插入排序:从第二位开始取出元素,依次从右往左向左边的有序数组片段比较,大于取出元素的往右移动一位。时间复杂度为O(n^2)。import java.util.Arrays;public class Main { public static void main(String[] args) { int[] arr = {6,2,5,1,9,4,8,7,3}; ...
2020-03-19 16:45:27
106
原创 选择排序算法(java)
选择排序:每次遍历未排序过的数组中选择出最小值,并于已排序的下一个元素交换。时间复杂度为O(n^2)。import java.util.Arrays;public class Main { public static void sort(int[] arr){ for (int i = 0; i < arr.length-1; i++) { ...
2020-03-19 15:52:23
67
原创 冒泡算法及其改良(Java版)
一、原始版冒泡算法:暴力美学!!!import java.util.Arrays;public class yuanshimaopao { public static void sort(int array[]){ //中间变量,用于暂存数据 int tmp = 0; for(int i = 0; i < array.leng...
2020-03-19 12:16:19
168
原创 字符串匹配之RK算法
RK算法是基于hash的,如果两个字符串hash后的值不相同,则它们肯定不相同;如果它们hash后的值相同,它们不一定相同。缺点:RK成也hash,败也hash。每一次hash冲突都要遍历一次字符串,当冲突很多很多的时候,RK算法就会退化成BF算法(BF算法就是对字符串逐一比较,每次匹配不成功就重新开始下一次匹配)。import java.util.Scanner;//字符串匹配,主串st...
2020-03-18 17:18:01
372
原创 自然语言处理NLP_中文分词_jieba工具
jieba工具安装:打开命令行,输入“pip install jieba”;jieba分词的三种模式:1、精确模式:将句子最精确地切分,适合文本分析;2、全模式:把句子中所有的可以成词的词语都扫描出来,但不能解决起义问题;3、搜索引擎模式:在精确模式的基础上,对长词在切分,提高召回率,适用于搜索引擎分词。jieba分词的主要方法:1、jieba.cut(str,cut_all=,HMM...
2020-02-28 17:01:20
298
原创 自然语言处理NLP_中文分词_双向最大匹配算法
代码中导入的FMM和BMM,请参考我之前发的文章FMMBMM""" 双向最大匹配算法"""#导入正向最大匹配算法和逆向最大匹配算法import FMMimport BMM#词典元素存储变量dict_words = []#初始化函数,载入词典def init(): with open("dict/dict.txt","r",encoding="utf-8"...
2020-02-28 14:27:25
713
原创 自然语言处理NLP_中文分词_逆向最大匹配算法
""" 逆向最大匹配算法"""#词典元素存储变量dict_words = []#初始化函数,载入词典def init(): with open("dict/dict.txt","r",encoding="utf-8") as dict_input: for word in dict_input: dict_words.append...
2020-02-28 14:22:59
386
原创 自然语言处理NLP_中文分词_正向最大匹配算法
""" 正向最大匹配算法"""#词典元素存储变量dict_words = []#初始化函数,载入词典def init(): with open("dict.txt","r",encoding="utf-8") as dict_input: for word in dict_input: dict_words.append(word...
2020-02-26 22:32:22
655
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人