原文:《算法设计手册》面试题解答 第四章:排序和搜索

. 如果给你 , , 个整数来排序,你会选择什么算法 消耗的时间和空间呢 解析: 我个人倾向于用随机化的快速排序。 首先是它在平均意义上来看比同样O nlogn 的归并排序和堆排序快 见 。 另外,和堆排序相比,快速排序的元素扫描是线性的,而且交换常被限制在一个有限范围内。假如这所有的整数不能存入内存,那么发生缺页中断的次数也小于堆排序。当然,当数据量更大时,问题就会牵扯到内部排序 英文维基 百 ...

2013-08-26 22:51 4 2170 推荐指数:

查看详情

算法设计手册面试题解答 第一算法设计简介

目录 系列简介 不用*和/计算整数除法 25匹马找出前5名 估算题样例 系列简介:   《算法设计手册》(The Algorithm Design Manual)是本比较经典的算法书了。如果说《算法导论》偏向于数学,那么《算法设计手册》更偏向于工程应用 ...

Sun Aug 18 06:00:00 CST 2013 8 5915
算法设计手册面试题解答 第五:图的遍历 附:DFS应用之找挂接点

第五面试题解答 5-31.   DFS和BFS使用了哪些数据结构? 解析:   其实刚读完这一,我一开始想到的是用邻接表来表示图,但其实用邻接矩阵也能实现啊?后来才发现应该回答,BFS用队列实现;DFS可以用栈实现也可以改写成递归形式。用栈来消除递归改写DFS也出现在《算法导论 ...

Wed Aug 28 20:34:00 CST 2013 2 2436
C# 线程手册 第四章 线程设计原则

概述 大多数可扩展系统是具有高度并发性的,这意味着可能存在多个针对同一个对象的并发请求。实现一个既具有高并发性又具有线程安全性的代码是一个很大的挑战,因为这意味着当多个线程访问共享数据时,不会发 ...

Tue Feb 21 04:23:00 CST 2012 2 3195
C# 线程手册 第四章 线程设计原则 MTA 线程模型

一个STA和一个MTA线程单元最大的不同是再同一个线程单元中可以有多个线程运行并可以使用所有共享数据。如图2所示。 图 2 由于MTA线程模型支持多线程并发执行,所以处理多线程间全局数据的同步问题就变成了调用方的事情了。关于同步问题我们已经在上一描述过。 确定线程模型 可以使 ...

Mon Mar 05 05:53:00 CST 2012 2 2915
C# 线程手册 第四章 线程设计原则 线程及线程间关系

一个多线程应用程序中的线程彼此间可能关联也可能不关联。例如,在每个程序中都有一个用来生成其他子线程的主线程,所以主线程就成了所有其他线程的控制器。在一个多线程应用程序中有三种常用方法来定义线程间的 ...

Tue Mar 06 05:05:00 CST 2012 5 1808
Freeswitch中文用户手册(第四章 SIP)----2

通过 B2BUA 呼叫在真实世界中,bob 和 alice 肯定要经常改变位置,那么它们的 SIP 地址也会相应改变,并且,如果他们之中有一个或两个处于 NAT 的网络中时,直接通信就更困难了。所以, ...

Mon Sep 09 20:33:00 CST 2013 0 4326
算法图解》——第四章 快速排序

第四章 快速排序 1 分而治之(divided and conquer,D&C) 第一个🌰:如何将一块地均匀地分成方块,并确保分出的方块是最大的呢? 使用D&C策略(并非解决问题的算法,而是一种解决问题的思路)!D& ...

Mon Apr 23 20:54:00 CST 2018 0 2656
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM