算法
Java天命人
愿头发如星辰,永不凋零于这片数据之海。——大河向东流
展开
-
傅里叶变换的通俗理解
傅立叶变换就是从时域和频域来描述问题。每个人的生命之中,时间轴所看到的现象,就是我们的时域,如果时间静止在这一刻,那么在这一刻,现在的你正在走的路、正在看的书和正在爱的人,这些所得到的信息这就是频域中所看到的信息,在时域中,我们看到的是走过的路、读过的书和爱过的人(在这里请注意字眼“正在爱”和“爱过的”,请在此自觉抠字眼)。如果还不懂,不要紧,请继续往下看,请最后一定要回来体会上一段话。傅立叶变换就原创 2017-12-26 20:20:48 · 7665 阅读 · 0 评论 -
动态规划之背包问题java语言+图解
最近碰到动态规划的01背包问题,然后我就再网上四处看帖子,对于我这样的小白白来说,觉得网上的帖子写的对于新手来说,都有些晦涩难懂,于是乎,我想着用代码和图的方式来结合说明一下,有不对的,望大家及时指正。背景: 0/1背包问题是最基本的背包问题,它包含了背包问题中设计状态、方程的最基本思想,另外,别的类型的背包问题往往也可以转换成0/1背包问题求解。一定要仔细体会基本思路的得出方法,状态转移方...原创 2018-03-27 01:22:29 · 9926 阅读 · 0 评论 -
算法-插入排序-直接插入排序
算法–插入排序–直接插入排序基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。插图: 代码实现import java.util.Arrays;public class insertSort { public static in...原创 2018-08-30 16:11:49 · 219 阅读 · 0 评论 -
算法-插入排序-希尔排序
基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。插图:代码:import java.util.Arrays;/** * 希尔排序 * * @author...原创 2018-08-30 17:46:44 · 202 阅读 · 0 评论 -
算法-选择排序-简单选择排序
算法-选择排序-简单选择排序基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。插图:代码:import java.util.Arrays;public class SelectSort { public static void main(String...原创 2018-08-30 19:34:13 · 687 阅读 · 0 评论 -
算法-选择排序-堆排序
算法-选择排序-堆排序基本思想:堆排序是一种树形选择排序,是对直接选择排序的有效改进。堆的定义如下:具有n个元素的序列(h1,h2,…,hn),当且仅当满足(hi>=h2i,hi>=2i+1)或(hi<=h2i,hi<=2i+1)(i=1,2,…,n/2)时称之为堆。在这里只讨论满足前者条件的堆。由堆的定义可以看出,堆顶元素(即第一个元素)必为最大项(大顶堆...原创 2018-08-31 10:12:20 · 171 阅读 · 0 评论 -
算法-等概率构造器
给一个函数,返回0和1,概率为p和1-p,请你实现一个函数,使得返回0、1的概率一样分析:00 —>概率为p*p01 —>概率为p*(1-p)10 —>概率为(1-p)*p11 —>概率为(1-p)*(1-p)四种情况中我们发现 01和10的两种组合返回的概率都是p*(1-p),那么我们可以认为这两种情况下返回0和返回1的概率是相等的。接下来就是...原创 2018-08-30 15:41:30 · 315 阅读 · 0 评论