Skip to Content
アルゴリズムクイックリファレンス 第2版
book

アルゴリズムクイックリファレンス 第2版

by George T. Heineman, Gary Pollice, Stanley Selkow, 黒川 利明, 黒川 洋
December 2016
Intermediate to advanced
440 pages
9h 44m
Japanese
O'Reilly Japan, Inc.
Content preview from アルゴリズムクイックリファレンス 第2版
4.6
 バケツソート
87
4-8
 範囲
[0, 1)
のための関数
hash
numBuckets
static int num;
/*
使うバケツの個数は、要素数に同じ。
*/
int numBuckets(int numElements) {
num = numElements;
return numElements;
}
/**
*
要素にバケツの番号を割り振るハッシュ関数。バケツ内で要素が順に並ぶように、
*
要素の符号化を適宜調整する。数の範囲は
[0, 1)
なので、
*
バケツをサイズ
1/num
で再分割する。
*/
int hash(double *d) {
int bucket = num*(*d);
return bucket;
}
バケツには、固定サイズの配列を使っても構わないが、固定サイズの配列はバケ
ツが満杯になったら再割り当ての必要がある。リンク付きリストの実装の方が、
30
40
%高速となる。
4.6.2
 分析
例4-7の関数
sortPointers
は、入力の各要素を、与えられた関数
hash
に基づき、
対応するバケツに格納する。これは
O(n)
時間かかる。
hash
の設計要件から、
i
j
なら、バケツ
b
i
のすべての要素が、バケツ
b
j
のどの要素よりも小さいことがわかっ
ている。
バケツから値を取り出し入力配列に書き戻すとき、バケツに複数の要素があれば
挿入ソート
を使う。
バケツソート
O(n)
の振る舞いをするには、各バケツの整列
に必要な時間をすべて足し合わせても
O(n)
であることを保証しなければな ...
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, 下田 倫大, 長尾 高弘
Rクイックリファレンス 第2版

Rクイックリファレンス 第2版

Joseph Adler, 大橋 真也, 木下 哲也
プログラミングRust 第2版

プログラミングRust 第2版

Jim Blandy, Jason Orendorff, Leonora F. S. Tindall, 中田 秀基
Rではじめるデータサイエンス

Rではじめるデータサイエンス

Hadley Wickham, Garrett Grolemund, 黒川 利明, 大橋 真也

Publisher Resources

ISBN: 9784873117850Other