数据结构和算法
_东极
少年锦时
展开
-
朴素贝叶斯
NB独立性假设在给定条件x 下yi的发生概率p(yi | X) = p(yi, X) / p(X) = p(yi) * p(X | yi) / p(X)p(yi | X) 后验p(X) 常量C,而且分母是一样p(yi) = yi / y 标签yi的先验概率p(X | yi) = p(x1,x2,…xn |yi) = p(x1 | yi) * p(x2 | yi) * …* p(xn | yi) 似然函数单词在文章中发生的概率#coding=utf8#Usage:#Trainin原创 2021-04-11 20:27:00 · 249 阅读 · 0 评论 -
tf-idf中文分词
朴素贝叶斯公式P(A,B) = P(A) * P(B|A)P(A|B) = P(A,B) / P(B) = P(A) * P(B|A) / P(B)独立性假设不合理的地方,对于一些语言有先后依赖的关系的语言模型,比如本田雅阁,和本田奔驰,雅阁和奔驰出现的概率不一致情况一元模型Unigram:词与词之间是相互独立的p(w1,w2,w3)=p(w1) * p(w2) * p(w3)二元模型Bigram:当前词只依赖1个单词 – 一阶马尔科夫模型p(w1,w2,w3)= p(w1)*p(w2|w1原创 2021-04-08 14:59:12 · 334 阅读 · 0 评论 -
LCS 最大公共子序列
A:我喜欢你B: 我其实很喜欢你对于文本相似度 = 2 * LCS(A,B)/ (len(A) + len(B))目的: 字面衡量文本相似度的方法之一,涉及动态规划的思想测试数据苹果7手机图片 苹果7手机价格汽车音响改装接线图 奥迪汽车音响改装汽车音响改装接线图 汽车音响改装线路如何才能让脸变白 怎样可以让皮肤变白# -*- coding: utf-8 -*-#!/usr/bin/pythonimport sysdef cal_lcs_sim(first_str, second原创 2021-04-07 23:59:37 · 294 阅读 · 0 评论 -
剑指offer完整java版本
文章目录面试题4:数组中重复的数字面试题5:替换空格牛客刷题链接:https://www.nowcoder.com/ta/coding-interviews面试题4:数组中重复的数字在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public class Solution { public boolean Find(int target, int原创 2020-10-27 23:30:54 · 594 阅读 · 0 评论 -
scala数据结构-树
文章目录数组-链表-树形结构对比树形结构概念数组-链表-树形结构对比数组的优点与缺点优点通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。2.缺点如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低链式存储的优点和缺点1.优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可)2.缺点:在进行检索时,效率仍然较低,比如(检索某个值,需要从头节点开始遍历)树存储方式分析能提高数据存储,读取原创 2020-07-21 00:00:18 · 869 阅读 · 0 评论 -
scala 实现二分查找
文章目录对于一个无序的集合,查找一个元素的时间复杂度是 o(n)二分查找适应于有序的查找元素,时间复杂度是 o(logn)package com.zydobject BinarySearch { def main(args: Array[String]): Unit = { val arr = Array(10, 20, 30, 50, 60, 100, 200, 1000) println(binarySearch(arr, 50, 0, arr.length - 1))原创 2020-07-15 23:35:22 · 568 阅读 · 0 评论 -
数据结构与算法:时间复杂度
算法的时间复杂度:具体分为时间复杂度和空间复杂度大O表示法对于代码void foo(){ for(int i =0;i<n;i++){//0.执行了n次 System.out.println("Hello world");//1.执行了n次 } System.out.println("function over");//2.执行了1次}01处执行了n次,2处执行了1次.假设算法总执行时间为T(n),其中n为问题的规模,上述总执行时间为T(n) =原创 2020-07-15 22:53:38 · 613 阅读 · 0 评论 -
scala 实现排序算法
文章目录动画网址:http://www.webhek.com/post/comparison-sort.html原创 2020-07-13 00:48:52 · 800 阅读 · 0 评论 -
scala数据结构(四):链表
文章目录链表单向链表链表链表是一种有序列表.其中的各对象按线性顺序排列数组的线性顺序是由数组下标决定的,而链表的顺序是由各个对象里的指针决定的使用链表结果可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分使用计算机内存空间,灵活的内存动态管理,但是链表失去了数组随机读取的优点,同时链表由于增加了节点的指针域,空间开销比较大链表作为一种基础的数据结构,可以用来生成其他类型的数据结构,可以分为单向链表,双向链表,循环链表单向链表单向链表是最简单的链表,它包含两个域,一个是信息域,一个是指原创 2020-07-12 16:55:03 · 855 阅读 · 0 评论 -
scala数据结构(三):栈
文章目录简介应用场景简介先入后出的有序列表,限制线性表中元素的插入和删除,只能在线性表的同一端进行的特殊线性表,允许插入和删除的一端.为变化的一端,称为栈顶(Top),另一端固定的一端为栈底(Bottom)因此,最先放入栈中元素在栈底,最后放入的元素在栈顶,删除元素相反,最后放入的先删除,最先放入的后删除栈主要两个操作: 入栈(push)和出栈(pop)应用场景1.子程序的调用: 在跳往子程序前,会将下个指令的地址存到堆栈中,直到子程序执行完后再将地址取出,回到原来的程序中2.处理递归原创 2020-07-10 00:36:03 · 814 阅读 · 0 评论 -
scala数据结构(二):自定义循环队列
文章目录什么是队列使用数组自定义队列什么是队列队列是一个有序列表,可以用数组或链表实现,先进先出原则,即:先存入队列的数据,要先取出。后存入的要后取出使用数组自定义队列循环队列需要3个参数,head,tail,count1.在队列初始化的时候,head以及tail都为02.count用来记录队列中元素的个数package com.zydimport scala.reflect.ClassTagobject QueueDemo { def main(args: Array[Stri原创 2020-07-08 23:57:45 · 355 阅读 · 0 评论 -
经典排序:冒泡排序和鸡尾酒排序
冒泡排序 @Test public void bubbleSort() { int[] a = new int[]{ 3, 4, 1, 2, 6, 5 }; for (int i = 0; i < a.length - 1; i++) { for (int j = 0; j...原创 2019-04-09 10:34:59 · 336 阅读 · 0 评论 -
JAVA的数据结构和算法(一)数组
动态数组的基本增删改查实现代码package com.struct;/** * 封装的数组 * 功能:增删改查 */public class MyArray { private long[] array; //表示有效的数据长度 private int elements; public MyArray() { array = n...原创 2018-12-21 21:13:25 · 313 阅读 · 0 评论