关闭

算法系列之--Kotlin的算法实战比较(原)

前面几节我们介绍了各种算法的具体实现,这一节我们分别对以上算法进行性能测试。         测试方法如下,分别测试n=1000,10000,100000(十万),500000(五十万),1000000(一百万),3000000(三百万)情况下的运算效率,随机数产生的范围是当前数据量的十倍,比如1000个随机数时,随机范围1000*10=10000.         测试机型为小米6。...
阅读(45) 评论(0)

算法系列之--Javascript和Kotlin的快速排序算法(原)

上一节我们学习了基数排序算法,这一节来学习快速排序算法 介绍         从这个快速排序算法的名字就可以看出他非常快,有多块呢?在平均状况下,排序n个项目要O(n log n)次比较。在最坏状况下则需要O(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他O(n log n)算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现...
阅读(61) 评论(0)

算法系列之--Javascript和Kotlin的基数排序算法(原)

上一节我们学习了堆算法,这一节来学习基数算法 介绍         之前的所有算法都是基于比较的算法,而基数排序算法不同,他不是基于比较的,而是将整形的数据拆分为不同的位数分别进行排序,适用于数列中的数字相差不大的情况,其具体操作步骤如下:         1. 将所有数字按照最后一位数的内容放入map中,比如对于[25,1,3,21,23,5,9]这个序列,放入map后内容...
阅读(42) 评论(0)

算法系列之--Javascript和Kotlin的堆排序算法(原)

上一节我们学习了希尔排序算法,这一节来学习堆排序算法 介绍         堆排序算法是基于堆这种数据结构设计的算法,理解了堆的概念就明白了堆算法的原理,因此我们简单介绍一下堆的数据结构。         堆的结构主要有以下几个特征:         1. 堆是由一个个小堆构成的,每个堆中,父节点都大于两个子节点,但是两个子节点的大小没有要求,既可以左子节点>右子节点,又可...
阅读(40) 评论(0)

算法系列之--Javascript和Kotlin的希尔排序算法(原)

上一节我们学习了插入算法,这一节来学习希尔排序算法 介绍         希尔排序是在插入排序基础上优化而来的,其思想就是利用插入排序最优时只需要O(n)的复杂度,我们可以对序列做调整,使其尽可能靠近最优序列,然后不断运算插入算法。详细步骤如下:         1. 挑选合适的步长         2. 以list[步长]为起点开始循环         3. 有了起点,...
阅读(42) 评论(0)

算法系列之--Javascript和Kotlin的插入算法(原)

上一节我们学习了选择算法,这一节来学习插入算法 介绍         插入算法与选择算法类似,只不过“方向相反”,他的特点就是依次选择当前索引右边的元素,有序的插入当前索引左边的序列中,步骤如下:         1. 从第一个元素开始,该元素可以认为已经被排序         2. 取出下一个元素,在已经排序的元素序列中从后向前扫描         3. 如果该元素(已...
阅读(44) 评论(0)

算法系列之--Javascript和Kotlin的选择算法(原)

上一节我们学习了冒泡算法,这一节来学习选择算法 介绍         选择排序与冒泡类似,都是入门级的排序算法,效率也与冒泡相同,都是O(n^2),算法步骤如下:         1. 寻找当前序列中最小的数的索引         2. 找到最小值索引后与第一位元素交换位置         3. 再在剩余序列中查找最小数的索引         4. 找到后与第二位元素交...
阅读(60) 评论(0)

算法系列之--Javascript和Kotlin的冒泡算法(原)

介绍         冒泡算法基本上是IT从业人员接触到的第一个算法,其原理就是依次对比相邻元素,大的放在后面,当全部list遍历之后,该list的最大值就会被置换到list的最后,详细步骤如下:          1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。          2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的...
阅读(68) 评论(0)

算法系列简单研究(原)

算法是一个工程师最基础的素养之一,就好比语言、框架一样,你不会这些知识,可能并不影响你日常工作的解BUG过程,但是如果你不去了解这些"抽象"的知识,那么可能整个职业生涯都只是解解BUG而已。         或者说,算法、框架、语言的研究,决定了一个程序员能到达的层次。         这个系列我们就来聊聊一些"烂大街"了的算法。         《算法系列之--Javascript和Kot...
阅读(56) 评论(0)

Html5的缓存小结(原)

Html5的缓存小结,以后可能会经常使用这种思维导图的方式来做一些简单知识点的梳理/总结。...
阅读(72) 评论(0)

Dagger2教程六之Component的组织方法(原)

为了介绍Dagger2的使用,我们搭建了一个Demo来逐步分析,大家可以在这里下载源码(这个源码与之前的五个小节源码不同)(https://github.com/dushaofeng/DaggerDemo2.git)。         上一节我们介绍了《Dagger2教程五之单例模式》,这一节我们来介绍Component的组织方法。         所谓Component组织方法,也就是我们工...
阅读(699) 评论(2)

Dagger2教程五之单例模式(原)

为了介绍Dagger2的使用,我们搭建了一个Demo来逐步分析,大家可以在这里下载源码(https://github.com/dushaofeng/DaggerDemo.git)。         上一节我们介绍了《Dagger2教程四之多构造方法的情况》,这一节我们来介绍Dagger2中的单例模式的使用。         Dagger2中有一个极其具有迷惑性的注释"@Singleton",字...
阅读(518) 评论(0)

Dagger2教程四之多构造方法的情况(原)

为了介绍Dagger2的使用,我们搭建了一个Demo来逐步分析,大家可以在这里下载源码(https://github.com/dushaofeng/DaggerDemo.git)。         上一节我们介绍了《Dagger2教程二之基础使用》这一节我们来讨论如果注入类的构造方法中的参数不同或者注入类包含多个构造方法时的情况处理。 一、包含可变参数的构造方法的情况...
阅读(430) 评论(2)

Dagger2教程三之构造方法带参数的情况(原)

为了介绍Dagger2的使用,我们搭建了一个Demo来逐步分析,大家可以在这里下载源码(https://github.com/dushaofeng/DaggerDemo.git)。         前面一节《Dagger2教程二之基础使用篇》介绍了Dagger2最简单的使用场景,但是在结尾我们遇到两个困难,即如何在不修改注入类代码的情况下实现注入?如何解决注入类构造方法需要参数的情况?...
阅读(1108) 评论(0)

Dagger2教程二之基础使用(原)

为了介绍Dagger2的使用,我们搭建了一个Demo来逐步分析,大家可以在这里下载源码(https://github.com/dushaofeng/DaggerDemo.git)。         上一节我们介绍了《Dagger2教程一之配置篇》,这一节我们来介绍Dagger2的具体使用方法。 一、原始方式         我们先来看一下如果不使用Dagger的情况,我们在Activ...
阅读(482) 评论(1)
73条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:303586次
    • 积分:3630
    • 等级:
    • 排名:第9394名
    • 原创:73篇
    • 转载:0篇
    • 译文:0篇
    • 评论:120条
    最新评论