Sorting in the Bit Model, Example Problems
Tom Kelliher, CS 315
Feb. 1, 1999
Read Section 1.1.3.
Algorithm assessment, simulating larger machines, example problems
 Sorting in the bit model.
 Example problems.
Lower bounds.

Why get more detailed? To see how much work (e.g., #number of
transistors) is involved in, for instance, comparison.

A linear array bitlevel model of a compare cell:
Compare, notify.
Assume we have kbit numbers. Run time?

Can we do better? Yes. We can do comparisons in parallel and merge the
partial results:
Compare, notify.
Run time?
Notes:
 Why not use a height 1 tree?
 Fanin and fanout in circuits.
 Runtime for sorting on a linear array of linear array comparators.
Binary tree comparators.
What do they look like?
 Pipelining the linear comparators. Pipelining the compare:
Five in, four out.
A lot of parallel work. Systolic computation.
 Pipelining the sort. Just a linear array of the comparators:
Running time?
 1.2

Consider two algorithms for solving a a problem of size M, one that runs
in M steps on an Mprocessor machine and one that runs in
steps on an processor machine. Which algorithm is more
efficient?
Assume that the cost of running a Pprocessor machine for T steps is
, where and are constants and P = M or
. For what values of and is the first algorithm
cheaper to run? For what values of and is the second
algorithm cheaper to run?
 1.3

Consider two algorithms for solving a problem of size M, one that runs in
M steps on an Mprocessor machine and one that runs in steps
on an processor machine. Which algorithm will run faster on an
Nprocessor machine? (Hint: Your answer depends on the relative sizes of
M and N, and you will need to use the fact that an Nprocessor
machine can simulate a Pprocessor machine with slowdown .)
Thomas P. Kelliher
Mon Feb 1 10:06:51 EST 1999
Tom Kelliher