
算法
卐兜兜飞卍
如果想要有效的管理一个稍微复杂一点的体系,针对其中事物的一套统一、带层次结构、清晰明了的命名准则就是必不可少而且非常好用的工具。
展开
-
牛客--二维数组查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 /** * @author :Dennis * @date :Created in 4/3/2020 21:10 * @description: * @modified By: * @versi...原创 2020-04-03 21:14:08 · 365 阅读 · 0 评论 -
算法基础:二分查找(BinarySearch)
二分查找 前提:为有序数组, 时间复杂度:log2n 空间复杂度:O(1) 思想:在有序数组中,采用分治策略,在最坏情况下在O(log2n)时间复杂度的情况下完成搜索。即:(默认升序)将n个元素分成两份,如果target=array[n/2]位置的元素,则完成搜索;如果target>array[n/2]则继续在右半部分查找,反之则在左侧部分查找,循环直至找到目标。找不到则退出。 impor...原创 2020-04-02 14:50:56 · 438 阅读 · 0 评论 -
HashMap--容量初始化中的位运算(|=,>>>)
阅读JDK中HashMap源码中的代码,HashMap初始化的时候,上来进行一通边界判断,然后接下来你会发现一段奇怪的代码: /** * Returns a power of two size for the given target capacity. */ static final int tableSizeFor(int cap) { int n ...原创 2020-03-31 17:43:32 · 501 阅读 · 0 评论 -
算法的时间复杂度和空间复杂度-总结
通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的算法时间复杂度分析方法是很有必要的。 算法执转载 2017-07-12 16:57:56 · 547 阅读 · 0 评论 -
平方根,立方根,阶乘,追赶法(C#)
平方根,立方根,阶乘,追赶法class Program { static void Main(string[] args) { //sq_root(); //cu_root(); //nfactorial(); Thomas(); }原创 2017-10-27 16:28:07 · 1577 阅读 · 1 评论