
算法总结
Ben同学
加油,坚持学习!
展开
-
算法总结(1)--十题一章
文章索引四则运算溢出判断四则运算溢出判断加法思路:两负数相加溢出值为正,两正数相加溢出值为负.加法例题:给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。本题关键变在于溢出处理,核心部分:如果a+b>c && c-b<a,那么a+b一定大于c如果a+b<c && a+b<0,那么a+b一定...原创 2018-10-10 23:17:40 · 126 阅读 · 0 评论 -
递归实现全排列组合(Java实现)
public class 递归实现排列组合 { static int len; public static void listAll(List list,String prefix) { if (prefix.length()==len) { System.out.println(prefix); } for (int i = 0; i < list.size(); i...原创 2019-09-23 22:29:08 · 1291 阅读 · 0 评论 -
七种查找算法(数据结构必会)
文章目录顺序查找二分查找(折半查找)插值查找斐波那契查找树表查找二叉排序树的定义二叉排序树的性质二叉排序树的插入二叉排序树的查找二叉排序树的删除二叉树的遍历分块查找(索引查找)哈希查找静态查找:查找过程中,查找的表中,没有插入或删除的动作动态查找:查找过程中,查找的表中,有插入或者删除的动作无序查找:查找的表是无序的表有序查找:查找的表是有序的表平均查找长度 ASL=sum(Pi*C...原创 2019-09-23 13:39:18 · 3007 阅读 · 0 评论 -
字符串与二叉树操作与其他总结
文章目录不使用比较运算求出两个数的最大值与最小值不使用比较运算求出两个数的最大值与最小值根据数学公式,我们知道最大值Max(a,b)=(a+b+| a-b|)/2,最小值Min(a,b)=(a+b-|a-b|)/2.,如果使用这种方法求最大最小值,当a和b的值非常大时,它们的和可能会发生数据溢出的情况.把a和b变为长整型(long)可避免溢出. public static long max(...原创 2019-09-12 21:35:02 · 743 阅读 · 0 评论 -
Java数组操作总结
文章目录寻找数组中的最大值与最小值找出数组中第二大的数寻找数组中的最大值与最小值最常用的方法就是遍历两次数组,一次找最大值,一次找最小值,比较2N次.或者遍历一次数组,声明两个变量保存最大值和最小值,每次取出一个数组先与最小值比较,再与最大值比较.,比较次数依旧是2N次算法优化:取双元素法:每次比较相邻的两个数,较大者与max比较,较小者与min比较,只需比较1.5N次.算法注意事项:...原创 2019-09-10 02:54:46 · 897 阅读 · 0 评论 -
栈,队列与位运算的总结
文章目录栈与队列的区别实现栈的方式如何用O(1)的时间复杂度求栈中最小元素如何实现队列如何用两个栈模拟队列操作判断一个数是否为2的n次方如何求二进制数中1的个数栈与队列的区别栈和队列是两种重要的线性数据结构.栈是后进先出,队列是先进先出.实现栈的方式方法1:使用java.util包下的Stack方法2:使用数组实现public class 数组实现栈<E> { priv...原创 2019-09-05 18:25:07 · 244 阅读 · 1 评论 -
链表操作总结
文章目录如何实现单链表的增删操作?单链表的定义单链表的插入操作(增)单链表的删除操作如何删除链表中重复的数据如何找出单链表中的倒数第K个元素如何实现链表的反转如何从尾到头输出单链表如何寻找单链表的中间结点如何检测链表是否有环怎么找环入口如何在不知道头指针的情况下删除指定节点如何判断两个链表相交如果两个链表相交,找出相交的第一个结点如何实现单链表的增删操作?单链表的定义//单链表结点clas...原创 2019-09-05 16:52:12 · 741 阅读 · 0 评论 -
Java海量数据处理算法
文章目录Hash法Bit-map法Bloom filter法数据库优化法倒排索引法外部排序法trie树双层桶法MapReduce法Hash法在处理海量数据的过程中,使用hash法一般可以快速存取,统计某些数据,将大量数据进行分类,例如提取某日访问网站次数最多的IP地址等.常用散列函数的构建方法如下:直接寻址法取关键字或关键字的某个线性函数值为散列地址,即h(key)=key或h(k...原创 2019-09-04 16:29:09 · 3403 阅读 · 0 评论 -
八大内部排序+外部排序
排序划分内部排序1.直接插入排序基本思想通常人们整理桥牌的方法是一张一张的来,将每一张牌插入到其他已经有序的牌中的适当位置。在计算机的实现中,为了要给插入的元素腾出空间,我们需要将其余所有元素在插入之前都向右移动一位。算法描述一般来说,插入排序采用in-place在数组上实现.具体算法如下:1.从第一个元素开始,该元素可以认为已经被排序.2.取出下一个元素,在已经排序的元素序列中...原创 2019-07-12 21:42:21 · 5946 阅读 · 2 评论 -
字符串搜索算法与匹配算法的总结
DFS算法BFS算法Sunday匹配算法KMP算法BM算法原创 2019-09-26 18:10:31 · 749 阅读 · 0 评论