上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 17 下一页
摘要: 快速排序(简称快排)因为其效率较高(平均O(nlogn))经常在笔试题中对其考查。 对于快排的第一步是选取一个“基数”,将会用这个“基数”与其它数进行比较交换。而这个“基数”的选择将影响到快排的效率如何,但如果为了选择基数而选择基数则会本末倒置。例如为了找到最佳基数,则需要在整个待排序列中找到中位数 阅读全文
posted @ 2017-06-27 00:13 OKevin 阅读(1080) 评论(0) 推荐(0)
摘要: jdk1.7.0_79 我相信几乎所有的同学在大大小小的笔试、面试过程中都会被问及ArrayList与LinkedList之间的异同点。稍有准备的人这些问题早已烂熟于心,前者基于数组实现,后者基于链表实现;前者随机方法速度快删除和插入指定位置速度慢,后者随机访问速度慢删除和插入指定位置速度快;两者都 阅读全文
posted @ 2017-06-26 22:00 OKevin 阅读(1702) 评论(0) 推荐(0)
摘要: 在上一节中讲解了归并排序的递归版《4.比较排序之归并排序(递归)》,通常来讲,递归版的归并排序要更为常用,本节简单介绍下非递归版的归并排序。思路和递归版相同,均为先分解后合并,非递归的重点在于如何确定并合理的分解待排序数组。 对于递归我们是这么做的: 对于非递归来讲,切分的不向递归从大到小,非递归实 阅读全文
posted @ 2017-06-26 01:04 OKevin 阅读(4553) 评论(0) 推荐(0)
摘要: 归并排序里运用到算法里很重要的一个思想——分治法:将原问题分解为几个规模较小但类似于原问题的子问题——《算法导论》。在每一层递归中都有3个步骤: 1.分解问题 2.解决问题 3.合并问题的解 举例待排序数组:{6, 5, 3, 1, 7, 2, 4},将它原始序列做分解。 可以经过不断的递归分解可以 阅读全文
posted @ 2017-06-24 01:50 OKevin 阅读(4028) 评论(4) 推荐(1)
摘要: 对于堆排序会涉及一些完全二叉树知识。对于待排序列{10, 2, 11, 8, 7},把它看成是一颗完全二叉树,如下图所示。 堆分为大根堆和小根堆:大根堆表示每个根节点均大于其子节点(L(i) >= L(2i) && L(i) >= L(2i + 1)),小根堆表示每个根节点均小于其子节点(L(i)  阅读全文
posted @ 2017-06-21 21:03 OKevin 阅读(1414) 评论(0) 推荐(0)
摘要: 梳排序的知名度远没有其他排序算法那么高,它是在冒泡排序的基础上做的改进,引入类似“步长”以及“子序列”概念,这两个概念在后面的排序算法中会经常提及。 待排序列:{10, 2, 11, 8, 7} groupNums = length = 5 步长系数(分组系数)coefficient = 1.3 排 阅读全文
posted @ 2017-06-20 22:46 OKevin 阅读(819) 评论(0) 推荐(0)
摘要: 冒泡排序可以说是在排序算法中最为入门级别的算法之一了。因为其简单易于理解,常在课堂中作为排序的入门算法。 冒泡排序见名生意,其排序过程如同水里的泡一般由下往上逐级递升。下图所示为冒泡排序过程:假设待排序序列为{10, 2, 11, 8, 7}。 Java Python3 阅读全文
posted @ 2017-06-19 23:57 OKevin 阅读(907) 评论(0) 推荐(1)
摘要: jdk1.7.0_79 本文实际上是对上文《13.ThreadPoolExecutor线程池之submit方法》的一个延续或者一个补充。在上文中提到的submit方法里出现了FutureTask,这不得不停止脚步将方向转向Java的Future模式。 Future是并发编程中的一种设计模式,对于多线 阅读全文
posted @ 2017-06-18 22:18 OKevin 阅读(3953) 评论(1) 推荐(1)
摘要: jdk1.7.0_79 在上一篇《ThreadPoolExecutor线程池原理及其execute方法》中提到了线程池ThreadPoolExecutor的原理以及它的execute方法。本文解析ThreadPoolExecutor#submit。 对于一个任务的执行有时我们不需要它返回结果,但是有 阅读全文
posted @ 2017-06-17 13:05 OKevin 阅读(59250) 评论(2) 推荐(5)
摘要: jdk1.7.0_79 对于线程池大部分人可能会用,也知道为什么用。无非就是任务需要异步执行,再者就是线程需要统一管理起来。对于从线程池中获取线程,大部分人可能只知道,我现在需要一个线程来执行一个任务,那我就把任务丢到线程池里,线程池里有空闲的线程就执行,没有空闲的线程就等待。实际上对于线程池的执行 阅读全文
posted @ 2017-06-15 23:53 OKevin 阅读(32847) 评论(7) 推荐(4)
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 17 下一页