算法
__lifanxin
砥砺前行,不忘初心!
展开
-
Java 多线程的三种实现方式
多线程的三种实现方式概述实现 Runnable 接口继承 Thread 类使用 Callable + FutureTask总结概述 这里记录 Java 多线程实现的三种方式。实现 Runnable 接口 第一种方式,实现 Runnable 接口,实现 run 方法,然后用 Thread 类实例化,最后调用其 start 方法,代码如下。class RunnableDemoTest implements Runnable { private String name; Run原创 2021-11-28 19:58:49 · 220 阅读 · 0 评论 -
Java 版二分查找算法
二分查找算法概述二分查找总结概述 这里我用 Java 语言实现了二分查找算法,虽然该算法的思维非常容易理解,但是在细节之处,比如在查找的边界上有很多值得注意的地方,这里不容小视。二分查找 如下是代码所示,请大家注意边界的处理,具体解释的话可以参考这个链接 – 二分查找的几种写法。public class Test { public static void main(String[] args) { // find 5 in arr[4], arr[5],原创 2021-11-21 20:26:54 · 637 阅读 · 0 评论 -
java 版二叉树相关算法实现
二叉树相关算法概述二叉树总结概述 本博客对二叉树的相关算法使用 Java 语言做了个实现。二叉树import java.util.Deque;import java.util.LinkedList;import java.util.Stack;class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = va原创 2021-11-15 11:43:01 · 882 阅读 · 0 评论 -
Java 版单链表操作
单链表概述单链表总结概述 这里记录一下单链表的一些操作,代码使用 Java 实现。单链表class ListNode { int val; ListNode next; ListNode() {} ListNode(int val) { this.val = val; } ListNode(int val, ListNode next) { this.val = val; this.next = next; }}public class Sing原创 2021-11-13 15:15:10 · 292 阅读 · 0 评论 -
常用递归算法解决的问题
常用递归算法解决的问题概述阶乘斐波拉契数列总结概述 这里记录一下常用递归算法解决的一些问题。掌握好递归算法就是要注意两个问题,第一个是先写递归出口即终止条件,然后才是自身函数的调用。当然在这中间或者末尾可以有其它的一些处理逻辑,比如打印之类的函数。阶乘 所谓阶乘,就是n! = n*(n-1)*...*2*1,示范代码如下。// javapublic static int factorial(int n) { if (n == 1) return 1; re原创 2021-11-11 16:30:04 · 1914 阅读 · 0 评论 -
KMP 算法笔记
KMP 算法笔记概述算法实现总结概述 这里仅仅做一个笔记,我将用 java 实现一个常见的 kmp 算法版本,关于该算法的讲解和理解,大家可以移步去该专栏 – 如何更好地理解和掌握 KMP 算法?,上面已经有很多前辈讲解的很透彻了。算法实现public class KMPTest { // test public static void main(String[] args) { String haystack = "aaabbababcabaaaa原创 2021-11-09 20:24:45 · 500 阅读 · 0 评论 -
python实现tea/xtea/xxtea加密算法
tea/xtea/xxtea加密算法概述teaxteaxxtea总结概述 这里记录一下采用python实现三种加密算法的方式,话不多说,直接上代码。teafrom ctypes import *def encrypt(v, k): v0, v1 = c_uint32(v[0]), c_uint32(v[1]) delta = 0x9e3779b9 k0, k1, k2, k3 = k[0], k[1], k[2], k[3] total = c_uint3原创 2021-09-05 20:27:39 · 5219 阅读 · 0 评论 -
python实现二叉树的相关算法
二叉树的相关算法实现概述代码总结概述 二叉树,作为数据结构中重要的一员,掌握好其相关算法是非常有必要的。在本博客中,我将会用python实现二叉树的前序、中序以及后序遍历,同时也实现了利用前序+中序求后序,或者利用中序+后序求前序等相关操作。代码 话不多说,下面直接给代码,所有算法都用递归的方式求解,所以本身逻辑并不复杂,此处就不再详细解释其算法原理。class Node: def __init__(self, value): self.value = value原创 2021-07-21 16:24:25 · 313 阅读 · 0 评论 -
C语言实现字典树
字典树基本概念代码实现头文件 trie_types.h函数实现 trie.c代码测试 main.c基本概念 字典树,又称单词查找树,Trie树,常用于统计、排序和保存大量的字符串。它的优点是利用字符串的公共前缀来减少存储空间以及查询时间,可以最大限度的减少无谓的字符串比较。 其基本特点如下:一个根节点起始,根节点不存储字符,然后除根节点外每一个节点都只包含一个字符;将根节点沿着某一条路径到叶子节点的所有字符排列起来即存储的一个字符串;另外就英文字母而言,一个节点最大的子节点数是26,且每个子节点包原创 2020-09-27 16:09:54 · 3788 阅读 · 8 评论