张晨光老师的播客

技术改变世界

算法是怎样决定你的职业生涯的

想在跨国公司找一份工作? 那么你将面临很多竞争。两年前,高盛总共收到了25万份申请。这不仅对求职者来说是令人畏惧的事情;,对公司来说也是一个很棘手的问题。 如果一个由五名人力资源工作人员组成的团队,每天工作12小时,每周工作七天,每个申请花费五分钟,他们要花近一年的时间来筛选简历。 ...

2019-04-07 17:19:57

阅读数 528

评论数 1

启发式算法(Heuristic Algorithm)

启发式算法(Heuristic Algorithm)有不同的定义:一种定义为,一个基于直观或经验的构造的算法,对优化问题的实例能给出可接受的计算成本(计算时间、占用空间等)内,给出一个近似最优解,该近似解于真实最优解的偏离程度不一定可以事先预计;另一种是,启发式算法是一种技术,这种技术使得在可接受...

2019-01-17 10:56:42

阅读数 131

评论数 0

蒙特卡罗方法

本文通过五个例子,介绍蒙特卡罗方法(Monte Carlo Method)。 一、概述 蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。 它非常强大和灵活,又相当简单易懂,很容易实现。对于许多问题来说,它往往是最简单的计算方法,有时甚至是唯一可行...

2019-01-17 09:49:40

阅读数 48

评论数 0

8皇后以及N皇后算法探究,回溯算法的JAVA实现,递归方案

八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发...

2018-11-30 08:46:14

阅读数 78

评论数 0

最强N皇后JAVA解题代码

关于N皇后算法的极限挑战,最终很满意 代码使用了“一维棋盘”,“对称剪枝”,“递归回溯”,“多线程”等特色 最终结果: 15皇后,用时:4903毫秒,计算结果:2279184 16皇后,用时:33265毫秒,计算结果:14772512 17皇后,用时:267460毫秒,计算结果:9581...

2018-11-30 08:43:57

阅读数 150

评论数 0

8皇后以及N皇后算法探究,回溯算法的JAVA实现,非递归,循环控制及其优化

研究了递归方法实现回溯,解决N皇后问题,下面我们来探讨一下非递归方案 实验结果令人还是有些失望,原来非递归方案的性能并不比递归方案性能高 代码如下: package com.newflypig.eightqueen; import java.util.Date; /** * 使用...

2018-11-30 08:42:58

阅读数 59

评论数 0

8皇后以及N皇后算法探究,回溯算法的JAVA实现,非递归,数据结构“栈”实现

是使用递归方法实现回溯算法的,在第一次使用二维矩阵的情况下,又做了一次改一维的优化 但是算法效率仍然差强人意,因为使用递归函数的缘故 下面提供另一种回溯算法的实现,使用数据结构”栈“来模拟,递归函数的手工实现,因为我们知道计算机在处理递归时的本质就是栈 时间复杂度是一样的,空间复杂度因为自定...

2018-11-30 08:42:02

阅读数 62

评论数 0

8皇后以及N皇后算法探究,回溯算法的JAVA实现,递归方案(一)

八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发...

2018-11-30 08:40:37

阅读数 66

评论数 0

计算机栈原理

1.开篇   本篇文章着重写的是系统中栈的工作原理,以及函数调用过程中栈帧的产生与释放的过程,有可能名字过大,如果不合适我可以换一个名字,希望大家能够指正,小丁虚心求教!如果有哪里写的不清楚的或者错误的地方请及时更正,小丁再次谢过了。文章里面有错别字,也可能会有好友说寄存器的32、16位的区别其...

2018-11-20 10:51:21

阅读数 180

评论数 0

函数调用机理

先来看一个简单的程序:   int func(int a, int b) { int c = 7; c = a + b; return c; }   int main() { int x = 10; ...

2018-08-08 14:25:43

阅读数 86

评论数 0

JAVA 插入排序

视频解析  https://edu.csdn.net/course/play/7813插入排序:1、空间复杂度O(1)。最好时间复杂度O(n),最坏时间复杂度O(n^2),平均时间复杂度为O(n^2)。最好情况下(已有序),比较次数n-1,移动次数0,最坏情况,比较次数O(n^2),移动次数O(n...

2018-04-13 10:12:58

阅读数 182

评论数 0

Java 冒泡排序实现及口诀

视频解析  https://edu.csdn.net/course/play/7813 在电视剧中士兵排队时,按个子高的和个子矮的的顺序进行排列,个子高的和个子矮的会进行两两进行比较。   冒泡排序: 其基本思想是重复的进行整个数组的排序,一次比较两个元素(两两排序),如果它们顺序不符...

2018-04-12 17:28:17

阅读数 548

评论数 2

提示
确定要删除当前文章?
取消 删除