现在位置: 首页 > 算法 > 文章
2020年02月14日 算法 ⁄ 共 4092字 评论关闭
  C 语言中整数与字符串的相互转换,有广泛应用的拓展函数(非标准库),也可以自己尝试简单的实现。   整数转字符串   1、拓展函数 itoa   itoa (表示 integer to alphanumeric)是把整型数转换成字符串的一个函数。   windows 环境下,在 头文件中有:   char* itoa(int value,char*string,int radix);//value: 要转换的整数,string: 转换后的字符串,radix: 转换进制数,如2,8,10,16 进制等。   函数源码:   ch...
阅读全文
2020年02月14日 算法 ⁄ 共 4872字 评论关闭
  编程中经常用到时间表达及转换的函数,它们都定义在 time.h 库函数中,在此做一下总结,以方便后续查看使用。   几个时间概念:   1:Coordinated Universal Time(UTC):   协调世界时,又称世界标准时间,也即格林威治标准时间(Greenwich Mean Time,GMT),中国内地的时间与UTC得时差为+8,也即UTC+8,美国为UTC-5。   2:Calendar Time:   日历时间,是用"从一个标准时间点到此时的时间经过的秒数"来表示的时间...
阅读全文
2020年02月14日 算法 ⁄ 共 8116字 评论关闭
  最短路径是图论中一个很经典的问题:给定图G(V,E),求一条从起点到终点的路径,使得这条路径上经过的所有边的边权之和最小。   对任意给出的图G(V,E)和起点S、终点T,如何求从S到T的最短路径。解决最短路径问题的常用算法有Dijkstra算法、Bellman-Ford算法、SPEA算法和Floyd算法。   1.Dijkstra算法   Dijkstra算法(读者可以将其读作“迪杰斯特拉算法”)用来解决单源最短路问题,即给定图G和起点s,通过算法得到S到达其...
阅读全文
2020年02月13日 算法 ⁄ 共 5357字 评论关闭
  Java的volatile关键字用于标记一个变量“应当存储在主存”。更确切地说,每次读取volatile变量,都应该从主存读取,而不是从CPU缓存读取。每次写入一个volatile变量,应该写到主存中,而不是仅仅写到CPU缓存。   实际上,从Java 5开始,volatile关键字除了保证volatile变量从主存读写外,还提供了更多的保障。我将在后面的章节中进行说明。   变量可见性问题   Java的volatile关键字能保证变量修改后,对各个线程是可见...
阅读全文
2020年02月13日 算法 ⁄ 共 1415字 评论关闭
  1. 问题可分而治之且 BFS   首先, 问题必须是可分而治之的, 并在最后合并. 分而治之(递归)是为了穷举, 合并是为了找最优.   Result r(costs[], target){   args = [];   for(cost in costs){   tmp = r(costs - cost, target - cost) + cost;   args += tmp;   }   return G(args);   }   虽然上面的代码是 DFS, 但形式上是 BFS, 而且也应该写成 BFS, 只不过 BFS 的代码不简洁而已.   思考: 与贪婪算...
阅读全文
2020年02月12日 算法 ⁄ 共 1798字 评论关闭
  启动终端模拟包或者从 Linux 控制台登录后,便可以看到 Shell 提示符。提示符是通往 Shell 的大门,是输入 Shell 命令的地方。   对于普通用户,Base shell 默认的提示符是美元符号$;对于超级用户(root 用户),Bash Shell 默认的提示符是井号#。该符号表示 Shell 等待输入命令。   不同的 Linux 发行版使用的提示符格式不同。例如在 CentOS 中,默认的提示符格式为:   [mozhiyan@localhost ~]$   这种格式包含了以...
阅读全文
2020年02月12日 算法 ⁄ 共 1924字 评论关闭
  堆基本概念   堆排序是一个很重要的排序算法,它是高效率的排序算法,复杂度是O(nlogn),堆排序不仅是面试进场考的重点,而且在很多实践中的算法会用到它,比如经典的TopK算法、小顶堆用于实现优先级队列。   堆排序是利用堆这种数据结构所设计的一种排序算法。堆实际上是一个完全二叉树结构。   问:那么什么是完全二叉树呢?   答:假设一个二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个...
阅读全文
2020年02月12日 算法 ⁄ 共 988字 评论关闭
  为什么要使用进行配置管理?   当我们的微服务系统开始慢慢地庞大起来,那么多 Consumer、Provider、Eureka Server、Zuul 系统都会持有自己的配置,这个时候我们在项目运行的时候可能需要更改某些应用的配置,如果我们不进行配置的统一管理,我们只能去每个应用下一个一个寻找配置文件然后修改配置文件再重启应用。   首先对于分布式系统而言我们就不应该去每个应用下去分别修改配置文件,再者对于重启应用来说,服务无...
阅读全文
2020年02月12日 算法 ⁄ 共 5015字 评论关闭
  枚举是 C# 中最有意思的一部分,大部分开发人员只了解其中的一小部分,甚至网上绝大多数的教程也只讲解了枚举的一部分。那么,我将通过这篇文章向大家具体讲解一下枚举的知识。我将从大家都了解的部分开始讲解,然后再讲解大家所不知道的或者了解很少的部分。   一、基础知识   枚举是由开发人员声明的一种 值类型 ,它在编译时就声明了一种 具名常量值 。使用枚举可以使我们的代码简单易读,我们先来看一下两个代码段...
阅读全文
2020年02月11日 算法 ⁄ 共 1324字 评论关闭
  我们知道php中有一些功能相似或者是名称相似的函数,比如array_replace,array_splice和str_replace这三个函数,从名称来看前两个操作数组的,后一个操作字符串的。   具体如下:   array_replace函数   < ?php   $arr1 = ['a' => 1, 'b' => 2, 'c' => 3];   $arr2 = ['b' => 4, 'c' => 5, 3];   $arr3 = [1, 2, 3];   $arr4 = array_replace($arr1, $arr2, $arr3);   print_r($arr4);   //Array   //...
阅读全文