November 1980 - Vol. 23 No. 11
Features
Best sorting algorithm for nearly sorted lists
Straight Insertion Sort, Shellsort, Straight Merge Sort,
Quickersort, and Heapsort are compared on nearly sorted lists. The
ratio of the minimum number of list elements which must be removed
so that the remaining portion of the list is in order to the size
of the list is the authors' measure of sortedness. Tests on
randomly generated lists of various combinations of list length and
small sortedness ratios indicate that Straight Insertion Sort is
best for small or very nearly sorted lists and that Quickersort is
best otherwise. Cook and Kim also show that a combination of the
Straight Insertion Sort and Quickersort with merging yields a
sorting method that performs as well as or better than either
Straight Insertion Sort or Quickersort on nearly sorted lists.
Bresenham’s algorithm with Grey scale
The control parameter in Bresenham's algorithm, when interpreted as a measure of distance from a straight line boundary, gives a weighted average of the intensities on each side of the line. This can be used to produce an aesthetically pleasing visual effect with modern display devices.
Decentralized extrema-finding in circular configurations of processors
This note presents an efficient algorithm, requiring O(n log n) message passes, for finding the largest (or smallest) of a set of n uniquely numbered processors arranged in a circle, in which no central controller exists and the number of processors is not known a priori.
Design of a LISP-based microprocessor
We present a design for a class of computers whose “instruction sets” are based on LISP. LISP, like traditional stored-program machine languages and unlike most high-level languages, conceptually stores programs and data in the same way and explicitly allows programs to be manipulated as data, and so is a suitable basis for a stored-program computer architecture. LISP differs from traditional machine languages in that the program/data storage is conceptually an unordered set of linked record structures of various sizes, rather than an ordered, indexable vector of integers or bit fields of fixed size. An instruction set can be designed for programs expressed as trees of record structures. A processor can interpret these program trees in a recursive fashion and provide automatic storage management for the record structures.
We discuss a small-scale prototype VLSI microprocessor which has been designed and fabricated, containing a sufficiently complete instruction interpreter to execute small programs and a rudimentary storage allocator.
Disk scheduling: FCFS vs.SSTF revisited
We report on a rather extensive simulation effort directed at evaluating the merits of two scheduling strategies, FCFS and SSTF, for moving-arm disks under stationary request arrival process. For First-Come-First-Served (FCFS) scheduling, analytic results for the mean waiting time are also given (in a closed form). If the objective of a schedule is to minimize the mean waiting time (or queue size) and its variance, the results seem to confirm the overall superiority of Shortest-Seek-Time-First (SSTF), particularly for medium and heavy traffic. This holds also when the input is highly correlated or addresses the cylinders nonuniformly. These results contradict some statements published in recent years. The domain of policies where SSTF is optimal is considered. The simulation methodology is described in some detail.