
算法
利剑 -~
追求卓越成功就会出其不意找上门
展开
-
堆的概念和算法
堆和队列原创 2023-05-20 14:24:04 · 621 阅读 · 0 评论 -
kmp匹配算法
kmp匹配算法第一种方式是暴利匹配方式第二种方式采用kmp 方式进行匹配第一种方式是暴利匹配方式暴利匹配规则第二种方式采用kmp 方式进行匹配实质是对算法的进一步优化。主要是求出最长公共子序列的长度比较过程中相比 暴利匹配,不能直接回归到开始位置+1操作,而是找到公共位置字符串+1操作找到公共部分,需要使用前缀,后缀的公共的部分,来计算出公共子序列。(计算出部分匹配表)部分匹配表的产生部分匹配值”就是前缀和后缀的最长的共有元素的长度举例: 以“ABCDABD”为例思路原创 2021-07-09 18:55:26 · 603 阅读 · 0 评论 -
动态规划过程
动态规划过程应用背包问题:思路分析:算法其实是模型建立的过程分析 设计过程原创 2021-05-26 23:40:35 · 181 阅读 · 0 评论 -
链表中求倒数第几个元素并打印出来
package com.qey.learn;import com.sun.org.apache.xerces.internal.dom.PSVIAttrNSImpl;import jdk.nashorn.internal.ir.LiteralNode;/** * @ClassName Listed * @Description * @Author qianxl * @Date 2021-03-11 17:12 * @Version 1.1 **//** * 链表分为包含头节点.原创 2021-03-11 19:10:16 · 416 阅读 · 2 评论 -
二叉排序树
目前是创建二叉排序树package com.qey.learn;/** * @ClassName BinarySortTreeDemo * @Description * @Author qianxl * @Date 2021-03-05 10:44 * @Version 1.1 **/public class BinarySortTreeDemo{ public static void main(String args[]){ int [] array={.原创 2021-03-07 23:53:30 · 159 阅读 · 1 评论 -
递归二分查找和非递归二分查找
package com.qey.learn;/** * @ClassName BinarySearch * @Description * @Author qianxl * @Date 2021-03-03 11:19 * @Version 1.1 **/public class BinarySearch { public static void main(String[] args) { int[] array = {1, 4, 6, 8, 9, 10}; .原创 2021-03-07 23:50:53 · 116 阅读 · 0 评论 -
图的DFS深度遍历
package com.qey.learn;import java.util.ArrayList;import java.util.Arrays;/** * @ClassName graph * @Description * @Author qianxl * @Date 2021-03-06 17:18 * @Version 1.1 **/public class Graph { private int [][] edges; private ArrayLis...原创 2021-03-06 18:50:57 · 157 阅读 · 4 评论 -
数据结构思维导图
分享一下原创 2021-02-13 23:01:51 · 303 阅读 · 0 评论 -
位运算实现一些小算法
package com.asiainfo.cem_volte_hbase;/** * @ClassName Test * @Description 有意思的小算法 * @Author qianxl * @Date 2019-08-02 17:34 * @Version 1.0 **/public class Test { /** ** @param num1* @...原创 2019-08-02 19:32:24 · 256 阅读 · 0 评论 -
时间复杂度&空间复杂度分析
转发:https://blog.youkuaiyun.com/LF_2016/article/details/52453212时间复杂度: 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),进而分析f(n)随n的变化情况并确定T(n)的数量级。这里用"O"来表示数量级,给出算法的时间复杂度。 T(n)=O(f(n)); 它表示随...转载 2018-07-29 10:42:26 · 1094 阅读 · 0 评论 -
递归树求解递归算法的时间复杂度
递归算法时间复杂度的计算方程式一个递归方程: 在引入递归树之前可以考虑一个例子: T(n) = 2T(n/2) + n2 迭代2次可以得: T(n) = n2+ 2(2T(n/4) + (n/2)2) 还可以继续迭代,将其完全展开可得: T(n) = n2+ 2((n/2)2+ 2((n/22)2+ 2((n/23)2+ 2((n...转载 2018-07-29 10:28:34 · 6042 阅读 · 0 评论 -
关于时间复杂度和空间复杂度的计算
转:https://blog.youkuaiyun.com/mr_garfield__/article/details/78762478时间复杂度:一般情况下,算法中基本操作重复的次数就是问题规模n的某个函数f(n),进而分析f(n)随n的变化情况并确定T(n)的数量级。这里用‘o’来表示数量级,给出算法时间复杂度。T(n)=o(f(n));它表示随问题规模n的增大,算法的执行时间增长率和f(...转载 2018-07-28 21:22:01 · 513 阅读 · 0 评论 -
自定义链表增,删除,链表逆序
工作时间长了,经常用框架,感觉真的成了coding,建议有时间可以刷一下lettcode 时间一长就会忘,写了大半天,记录一下,理解后再写特别简单,链表逆序看了很多博客,写法各式各样,但是感觉解释的还是不清楚明了,所以在这又总结一下:1.首先定义链表的结构定义的结构Node<T> 这样data 可以自定义的泛型,增加了灵活性:public class Node<T...原创 2019-09-08 10:15:00 · 190 阅读 · 0 评论 -
时间复杂度和空间复杂度
转发:https://www.cnblogs.com/mafeng/p/6831731.html前言一很多搞 iOS 开发的同学都没有学过算法,有一些甚至没有学过数据结构。在很多人的观念中,算法和数据结构只是在面试的时候有用。这些人的想法对吗?在我看来,也对,也不对。对于 iOS 开发来说,大多数时候都不需要算法和数据结构知识,但是如果你了解了算法和数据结构知识,在一些关键时候,这...转载 2018-07-28 18:07:56 · 1359 阅读 · 0 评论 -
快速排序的原理以及Java代码
package com.asiainfo.test;import java.util.Arrays;import sun.misc.Sort;public class QKSORT { //基本思路是:选择一个值为key 一般是选择左边第一个为key //先是从右向左找到小于 key 的值 将此值与 key 进行交换,由于key 是一个标记先不用交换 ;先是将low与high...原创 2018-07-26 23:57:27 · 225 阅读 · 0 评论 -
java实现二分查找-两种方式
转:https://blog.youkuaiyun.com/maoyuanming0806/article/details/78176957二分查找是一种查询效率非常高的查找算法。又称折半查找。起初在数据结构中学习递归时实现二分查找,实际上不用递归也可以实现,毕竟递归是需要开辟额外的空间的来辅助查询。本文就介绍两种方法二分查找算法思想有序的序列,每次都是以序列的中间位置的数来与待查找的关键字...转载 2018-07-28 00:27:32 · 251 阅读 · 0 评论 -
链表逆序(JAVA实现)
题目:将一个有链表头的单向单链表逆序分析:链表为空或只有一个元素直接返回; 设置两个前后相邻的指针p,q,使得p指向的节点为q指向的节点的后继; 重复步骤2,直到q为空; 调整链表头和链表尾;图解: 以链表A->B->C->D为例,逆序此链表。 0.初始状态 ...转载 2018-07-17 17:11:40 · 2396 阅读 · 0 评论