Skip to Content
算法技术手册(原书第2 版)
book

算法技术手册(原书第2 版)

by George T.Heineman, Gary Pollice, Stanley Selkow
August 2017
Intermediate to advanced
360 pages
8h 35m
Chinese
China Machine Press
Content preview from 算法技术手册(原书第2 版)
排序算法
83
排序算法
4.8.4 算法分析
使用递归排序算法对
A
[
start
,
end
)
左半部分和右半部分排序之后,
归并排序
会在
O(
n
)
的时间内完成“归并”阶段,将排完序的元素正确地放入数组中,并该数组作为返回
结果。
copy
原封不动地复制了整个数组
A
,所以在副本中,所有元素都在原有位置上,递归必
定会达到结束条件。观察到这一点比较复杂,同时也是这个算法的关键。此外,最终的
归并步骤只需要
O
(
n
)
次操作,这确保了总体性能依旧是
O
(
n
log
n
)
。由于
copy
是算法唯
一使用的额外空间,因此总的空间需求为
O
(
n
)
4.8.5 衍生算法
在所有排序算法中,
归并排序
是最容易转换为处理外存数据(例如磁盘)的算法。例
4-11
一个完整的
Java
实现,该实现使用了内存映射数据来高效地完成对包含二进制编
码的整数文件的排序。不过该算法要求元素都具有相同的大小,因此无法适用于任意字
符串或者其他变长元素的排序。
4-11
:外部归并排序的
Java
实现
public static void mergesort (File A) throws IOException {
File copy = File.createTempFile ("Mergesort", ".bin");
copyFile(A, copy);
RandomAccessFile src = new RandomAccessFile (A, "rw");
RandomAccessFile dest = new RandomAccessFile ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

Aurélien Géron
Go语言编程

Go语言编程

威廉·肯尼迪

Publisher Resources

ISBN: 9787111562221