Bentley, Jon Louis
Overview
Works:  76 works in 290 publications in 6 languages and 2,975 library holdings 

Genres:  Conference papers and proceedings Case studies 
Roles:  Author 
Classifications:  QA76.6, 005.1 
Publication Timeline
.
Most widely held works by
Jon Louis Bentley
Programming pearls by
Jon Louis Bentley(
Book
)
89 editions published between 1985 and 2015 in 7 languages and held by 1,468 WorldCat member libraries worldwide
"Just as natural pearls grow from grains of sand that irritate oysters, programming pearls have grown from real problems that have irritated real programmers. With origins beyond solid engineering, in the realm of insight and creativity, Bentley's pearls offer unique and clever solutions to those nagging problems. Illustrated by programs designed as much for fun as for instruction, the book is filled with lucid and witty descriptions of practical programming techniques and fundamental design principles. It is not at all surprising that Programming Pearls has been so highly valued by programmers at every level of experience"Jacket
89 editions published between 1985 and 2015 in 7 languages and held by 1,468 WorldCat member libraries worldwide
"Just as natural pearls grow from grains of sand that irritate oysters, programming pearls have grown from real problems that have irritated real programmers. With origins beyond solid engineering, in the realm of insight and creativity, Bentley's pearls offer unique and clever solutions to those nagging problems. Illustrated by programs designed as much for fun as for instruction, the book is filled with lucid and witty descriptions of practical programming techniques and fundamental design principles. It is not at all surprising that Programming Pearls has been so highly valued by programmers at every level of experience"Jacket
More programming pearls : confessions of a coder by
Jon Louis Bentley(
Book
)
24 editions published between 1988 and 2007 in 3 languages and held by 684 WorldCat member libraries worldwide
Software  Software Engineering
24 editions published between 1988 and 2007 in 3 languages and held by 684 WorldCat member libraries worldwide
Software  Software Engineering
Writing efficient programs by
Jon Louis Bentley(
Book
)
21 editions published between 1982 and 1989 in 3 languages and held by 561 WorldCat member libraries worldwide
Classic on practical methods of optimizing programs: This book gives practical advice on improving the efficiency (optimizing) programs and the limits there of. While showing how to trade off speed for space or viceversa, the author points out the limits that can be expected to gain. His list of techniques is a collection of practical approaches rather than theoretical possibilities. At 158 pages (not counting index) this book is eminently readable, accessable and useful. Clearly written and well organized this is a book to keep on your shelf for when a program needs improving. It is also a book to read before a program as a reminder not to make things complicated with optimization that aren't needed
21 editions published between 1982 and 1989 in 3 languages and held by 561 WorldCat member libraries worldwide
Classic on practical methods of optimizing programs: This book gives practical advice on improving the efficiency (optimizing) programs and the limits there of. While showing how to trade off speed for space or viceversa, the author points out the limits that can be expected to gain. His list of techniques is a collection of practical approaches rather than theoretical possibilities. At 158 pages (not counting index) this book is eminently readable, accessable and useful. Clearly written and well organized this is a book to keep on your shelf for when a program needs improving. It is also a book to read before a program as a reminder not to make things complicated with optimization that aren't needed
Algorithms for reporting and counting geometric intersections by
Jon Louis Bentley(
Book
)
5 editions published in 1978 in English and German and held by 12 WorldCat member libraries worldwide
An interesting class of Geometric Intersection Problems calls for dealing with the pairwise intersections among a set of N objects in the plane. These problems arise in many applications such as printed circuit design, architectural data bases, and computer graphics. Shamos and Hoey have described a number of algorithms for detecting if any two objects in a planar set intersect. This paper extends this work by giving algorithms which count the number of such intersections and algorithms which report all such intersections
5 editions published in 1978 in English and German and held by 12 WorldCat member libraries worldwide
An interesting class of Geometric Intersection Problems calls for dealing with the pairwise intersections among a set of N objects in the plane. These problems arise in many applications such as printed circuit design, architectural data bases, and computer graphics. Shamos and Hoey have described a number of algorithms for detecting if any two objects in a planar set intersect. This paper extends this work by giving algorithms which count the number of such intersections and algorithms which report all such intersections
The complexity of manipulating hierarchically defined sets of rectangles by
Jon Louis Bentley(
Book
)
4 editions published in 1981 in English and held by 11 WorldCat member libraries worldwide
Algorithms that manipulate sets of rectangles are of great practical importance in VLSI design systems and other applications. Although much theoretical work has appeared recently on the complexity of rectangle problems, it has assumed that the inputs are given as a list of rectangles. In this paper we study the complexity of rectangle problems when the inputs are given in a hierarchical language that allows the designer to build large designs by replicating small designs. We will see that while most of the problems are NPhard in the general case, there are O(N lg N) algorithms that process inputs obeying certain restrictions. (Author)
4 editions published in 1981 in English and held by 11 WorldCat member libraries worldwide
Algorithms that manipulate sets of rectangles are of great practical importance in VLSI design systems and other applications. Although much theoretical work has appeared recently on the complexity of rectangle problems, it has assumed that the inputs are given as a list of rectangles. In this paper we study the complexity of rectangle problems when the inputs are given in a hierarchical language that allows the designer to build large designs by replicating small designs. We will see that while most of the problems are NPhard in the general case, there are O(N lg N) algorithms that process inputs obeying certain restrictions. (Author)
An introduction to algorithm design by
Jon Louis Bentley(
Book
)
4 editions published between 1978 and 1979 in English and held by 10 WorldCat member libraries worldwide
The field of algorithm design is concerned with the development of efficient methods for solving computational problems. Although the field traces its roots to theoretical computer science, recent algorithmic advances have drastically reduced the costs of real computations. For this reason it is important that anyone involved with computing have at least a cursory knowledge of the area. This paper surveys the field of algorithm design in two ways: first by the study of a few problems in detail, and then by a systematic view of the field. The orientation of this paper is towards the practitioner of computing (in either software or hardware); the goals of the paper are to provide both an understanding of the field and a feeling for what it can do for me. (Author)
4 editions published between 1978 and 1979 in English and held by 10 WorldCat member libraries worldwide
The field of algorithm design is concerned with the development of efficient methods for solving computational problems. Although the field traces its roots to theoretical computer science, recent algorithmic advances have drastically reduced the costs of real computations. For this reason it is important that anyone involved with computing have at least a cursory knowledge of the area. This paper surveys the field of algorithm design in two ways: first by the study of a few problems in detail, and then by a systematic view of the field. The orientation of this paper is towards the practitioner of computing (in either software or hardware); the goals of the paper are to provide both an understanding of the field and a feeling for what it can do for me. (Author)
Divide and conquer algorithms for closest point problems in multidimensional space by
Jon Louis Bentley(
)
8 editions published between 1976 and 1982 in English and held by 9 WorldCat member libraries worldwide
8 editions published between 1976 and 1982 in English and held by 9 WorldCat member libraries worldwide
WorstCase Analyses of SelfOrganizing Sequential Search Heuristics by
Jon Louis Bentley(
Book
)
4 editions published in 1983 in English and held by 8 WorldCat member libraries worldwide
The performance of sequential search can be enhanced by the use of heuristics that move elements closer to the front of the list as they are found. Previous analyses have characterized the performance of such heuristics probabilitically. In this paper we show that the heuristics can also be analyzed in the worstcase sense, and that the relative merit of the heuristics under this analysis is different than in the probabilistic analyses. Simulations show that the relative merit of the heuristics on real data is closer to that of the new worstcase analyses rather than that of the previous probabilistic analyses. (Author)
4 editions published in 1983 in English and held by 8 WorldCat member libraries worldwide
The performance of sequential search can be enhanced by the use of heuristics that move elements closer to the front of the list as they are found. Previous analyses have characterized the performance of such heuristics probabilitically. In this paper we show that the heuristics can also be analyzed in the worstcase sense, and that the relative merit of the heuristics under this analysis is different than in the probabilistic analyses. Simulations show that the relative merit of the heuristics on real data is closer to that of the new worstcase analyses rather than that of the previous probabilistic analyses. (Author)
Writing efficient code by
Jon Louis Bentley(
Book
)
4 editions published in 1981 in English and Undetermined and held by 8 WorldCat member libraries worldwide
The most important step in making a software system efficient is the proper selection of data structures and algorithms; many papers and textbooks have been devoted to these topics. Most discussions, however, neglect another important activity: that of writing machineindependent efficient code. This paper examines a set of techniques for accomplishing that step. We examine those techniques both in an abstract setting and in their application of a real program, where they led to a speedup of a factor of over six. Because these techniques should be employed rarely, an important part of this paper is describing exactly when one should (and should not) use them. (Author)
4 editions published in 1981 in English and Undetermined and held by 8 WorldCat member libraries worldwide
The most important step in making a software system efficient is the proper selection of data structures and algorithms; many papers and textbooks have been devoted to these topics. Most discussions, however, neglect another important activity: that of writing machineindependent efficient code. This paper examines a set of techniques for accomplishing that step. We examine those techniques both in an abstract setting and in their application of a real program, where they led to a speedup of a factor of over six. Because these techniques should be employed rarely, an important part of this paper is describing exactly when one should (and should not) use them. (Author)
A general method for solving divideandconquer recurrences by
Jon Louis Bentley(
Book
)
4 editions published in 1978 in English and Undetermined and held by 7 WorldCat member libraries worldwide
The complexity of divideandconqure algorithms is often described by recurrence relations of the form T(n) = kT(n/c) + f(n). The only method currently available for solving such recurrences consists of solution tables for fixed functions f and varying k and c. In this note we describe a unifying method for solving these recurrences that is both general in applicability and easy to apply without the use of large tables
4 editions published in 1978 in English and Undetermined and held by 7 WorldCat member libraries worldwide
The complexity of divideandconqure algorithms is often described by recurrence relations of the form T(n) = kT(n/c) + f(n). The only method currently available for solving such recurrences consists of solution tables for fixed functions f and varying k and c. In this note we describe a unifying method for solving these recurrences that is both general in applicability and easy to apply without the use of large tables
Decomposable searching problems by
Jon Louis Bentley(
Book
)
4 editions published in 1978 in English and Undetermined and held by 6 WorldCat member libraries worldwide
Although searching is one of the most important problems in computer science and many particular results are known for searching problems, there really is no satisfactory, 'theory of searching.' In this paper we propose a first step toward such a theory by defining the class of decomposable searching problems and them proving three theorems about problems in this class. These theorems are all of the form 'given a data structure D for a decomposable searching problem we can transform D into a new data structure D' for a related problem'. The correctness and complexity analysis of D are then used to establish the correctness and complexity of D'. We present transforms for converting a static structure into a dynamic structure, for adding 'range variables' to queries, and for making preprocessing/query time tradeoffs. These transforms have already been used to develop a number of best known 'theoretical' algorithms, and promise to be an important tool in software engineering. (Author)
4 editions published in 1978 in English and Undetermined and held by 6 WorldCat member libraries worldwide
Although searching is one of the most important problems in computer science and many particular results are known for searching problems, there really is no satisfactory, 'theory of searching.' In this paper we propose a first step toward such a theory by defining the class of decomposable searching problems and them proving three theorems about problems in this class. These theorems are all of the form 'given a data structure D for a decomposable searching problem we can transform D into a new data structure D' for a related problem'. The correctness and complexity analysis of D are then used to establish the correctness and complexity of D'. We present transforms for converting a static structure into a dynamic structure, for adding 'range variables' to queries, and for making preprocessing/query time tradeoffs. These transforms have already been used to develop a number of best known 'theoretical' algorithms, and promise to be an important tool in software engineering. (Author)
Two papers on a treestructured parallel computer by
Jon Louis Bentley(
Book
)
4 editions published in 1979 in English and Undetermined and held by 6 WorldCat member libraries worldwide
This report consists of two papers describing various aspects of a new treestructured parallel computer. The first paper, 'A tree machine for searching problems' by J.L. Bentley and H.T. Kung, describes the basic architecture of the machine. A set of N elements can be maintained on an Nprocessor version of the machine such that insertions, deletions, queries and updates can all be processed in 2 lg N time units. The queries can be very complex, including problems arising in ordered set manipulation, data bases, and statistics. The machine is pipelined so that M successive operations can be performed in M1 + 2 lg N time units. The paper studies both the basic machine structure and a VLSI implementation of the machine. The second paper, 'A parallel algorithm for constructing minimum spanning trees' by J.L. Bentley, shows how an (N/lg N)processor version of the machine can solve the problem of constructing minimum spanning trees in time proportional to N lg N. This algorithm is an improvement over existing algorithms in several ways. (Author)
4 editions published in 1979 in English and Undetermined and held by 6 WorldCat member libraries worldwide
This report consists of two papers describing various aspects of a new treestructured parallel computer. The first paper, 'A tree machine for searching problems' by J.L. Bentley and H.T. Kung, describes the basic architecture of the machine. A set of N elements can be maintained on an Nprocessor version of the machine such that insertions, deletions, queries and updates can all be processed in 2 lg N time units. The queries can be very complex, including problems arising in ordered set manipulation, data bases, and statistics. The machine is pipelined so that M successive operations can be performed in M1 + 2 lg N time units. The paper studies both the basic machine structure and a VLSI implementation of the machine. The second paper, 'A parallel algorithm for constructing minimum spanning trees' by J.L. Bentley, shows how an (N/lg N)processor version of the machine can solve the problem of constructing minimum spanning trees in time proportional to N lg N. This algorithm is an improvement over existing algorithms in several ways. (Author)
Efficiency considerations for C programs on a VAX 11/780 by
Christopher J Van Wyk(
Book
)
3 editions published in 1982 in English and held by 6 WorldCat member libraries worldwide
Typical C programs are 'efficient enough' for most applications. If they are not, judicious improvement of the algorithms and data structures often can improve performance enough. Sometimes, even better performance is needed, and one must manipulate the C program in ways that depend on the language and the machine on which the application is running. In this paper the authors compare the efficiency of some C constructs and discuss some methods of improving the performance of C programs running on VAX 11/780's
3 editions published in 1982 in English and held by 6 WorldCat member libraries worldwide
Typical C programs are 'efficient enough' for most applications. If they are not, judicious improvement of the algorithms and data structures often can improve performance enough. Sometimes, even better performance is needed, and one must manipulate the C program in ways that depend on the language and the machine on which the application is running. In this paper the authors compare the efficiency of some C constructs and discuss some methods of improving the performance of C programs running on VAX 11/780's
On the average number of maxima in a set of vectors and applications by
Jon Louis Bentley(
Book
)
3 editions published in 1977 in English and held by 6 WorldCat member libraries worldwide
A maximal vector of a set is one which is not less than any other vector in all components. A recurrence relation is derived for computing the average number of maximal vectors in a set of n vectors in dspace under the assumption that all n factorial to the dth power relative orderings are equally probable. Solving recurrence shows that the average number of maxima is 0((1n n) to the (d1)th power). This result is used to construct an algorithm for finding all the maxima that has expected running time linear in n (for sets of vectors drawn under our assumptions). For a given set of random points, the result is also used to derive an upper bound on the expected number of points from the set which are on the boundary on the convex hull of the set. (Author)
3 editions published in 1977 in English and held by 6 WorldCat member libraries worldwide
A maximal vector of a set is one which is not less than any other vector in all components. A recurrence relation is derived for computing the average number of maximal vectors in a set of n vectors in dspace under the assumption that all n factorial to the dth power relative orderings are equally probable. Solving recurrence shows that the average number of maxima is 0((1n n) to the (d1)th power). This result is used to construct an algorithm for finding all the maxima that has expected running time linear in n (for sets of vectors drawn under our assumptions). For a given set of random points, the result is also used to derive an upper bound on the expected number of points from the set which are on the boundary on the convex hull of the set. (Author)
Transforming static data structures to dynamic structures by J. B Saxe(
Book
)
3 editions published in 1979 in English and held by 6 WorldCat member libraries worldwide
In this paper we will investigate transformations that serve as tools in the design of new data structures. Specifically, we study general methods for converting static structures (in which all elements are known before any searches are performed) to dynamic structures (in which insertions of new elements can be mixed with searches). We will exhibit three classes of such transformations, each based on a different counting scheme for representing the integers, and then use a combinatorial model to show the optimality of many of the transformations. Issues such as online data structures and deletion of elements are also examined. To demonstrate the applicability of these tools, we will study six new data structures that have been developed by applying the transformations. (Author)
3 editions published in 1979 in English and held by 6 WorldCat member libraries worldwide
In this paper we will investigate transformations that serve as tools in the design of new data structures. Specifically, we study general methods for converting static structures (in which all elements are known before any searches are performed) to dynamic structures (in which insertions of new elements can be mixed with searches). We will exhibit three classes of such transformations, each based on a different counting scheme for representing the integers, and then use a combinatorial model to show the optimality of many of the transformations. Issues such as online data structures and deletion of elements are also examined. To demonstrate the applicability of these tools, we will study six new data structures that have been developed by applying the transformations. (Author)
Mathematical foundations of computer science 1981 : proceedings, 10th symposium, Strbské Pleso, Czechoslovakia, August 31September
4, 1981 by
Jozef Gruska(
Book
)
1 edition published in 1981 in English and held by 6 WorldCat member libraries worldwide
1 edition published in 1981 in English and held by 6 WorldCat member libraries worldwide
An optimal worstcase algorithm for reporting intersections of rectangles by
Jon Louis Bentley(
Book
)
4 editions published in 1979 in English and Undetermined and held by 6 WorldCat member libraries worldwide
4 editions published in 1979 in English and Undetermined and held by 6 WorldCat member libraries worldwide
Living in pieces by
Jillian Lebeck(
Recording
)
2 editions published between 2003 and 2004 in English and held by 6 WorldCat member libraries worldwide
2 editions published between 2003 and 2004 in English and held by 6 WorldCat member libraries worldwide
An Alphard specification of a correct and efficient transformation on data structures by
Jon Louis Bentley(
Book
)
5 editions published between 1978 and 1979 in English and Undetermined and held by 6 WorldCat member libraries worldwide
In this paper we study standard program components applicable to a wide variety of design tasks; we choose for this study the specific problem domain of data structures for general search problems. Within this domain transformations for converting solutions of simple searching problems to solutions of more complex problems have been developed. We discuss one of those transformations, specify precisely the transformation and its conditions of applicability, and prove its correctness; we accomplish this by casting it in terms of abstract data types  specifically by using the Alphard form mechanism. We also demonstrate that the costs of the structures derived by this transformation are only slightly greater than the costs of the original solutions. The transformation we describe has already been used to develop a number of new algorithms, and it represents a new level of generality in software engineering tools
5 editions published between 1978 and 1979 in English and Undetermined and held by 6 WorldCat member libraries worldwide
In this paper we study standard program components applicable to a wide variety of design tasks; we choose for this study the specific problem domain of data structures for general search problems. Within this domain transformations for converting solutions of simple searching problems to solutions of more complex problems have been developed. We discuss one of those transformations, specify precisely the transformation and its conditions of applicability, and prove its correctness; we accomplish this by casting it in terms of abstract data types  specifically by using the Alphard form mechanism. We also demonstrate that the costs of the structures derived by this transformation are only slightly greater than the costs of the original solutions. The transformation we describe has already been used to develop a number of new algorithms, and it represents a new level of generality in software engineering tools
Beautiful code : [leading programmers explain how they think] by
Greg Wilson(
Book
)
2 editions published in 2008 in Japanese and held by 6 WorldCat member libraries worldwide
Leading computer scientists discuss how they found unusual, carefully designed solutions to difficult problems. The text lets readers look over the shoulder of major coding and design experts to see problems through their eyes
2 editions published in 2008 in Japanese and held by 6 WorldCat member libraries worldwide
Leading computer scientists discuss how they found unusual, carefully designed solutions to difficult problems. The text lets readers look over the shoulder of major coding and design experts to see problems through their eyes
more
fewer
Audience Level
0 

1  
Kids  General  Special 
Related Identities
Useful Links
Associated Subjects
Algorithms Alphard (Computer program language) Architectural designData processing British Columbia C (Computer program language) Canada Computational complexity Computer programming Computer programs Computer science Computer scienceMathematics Computer software Data structures (Computer science) Engineering graphics File organization (Computer science) Finite geometries Formal languages Geometry, Plane GeometryData processing Heuristic Information retrieval Input design, Computer Integrated circuitsVery large scale integration Jazz Jazz vocals List processing (Electronic computers) Machine theory Maxima and minima MicrocomputersProgramming Parallel processing (Electronic computers) Rectangles Recursive functions Recursive programming Search theory Set theory Software engineering Sorting (Electronic computers) Trees (Graph theory) VAX11 (Computer) Vector spaces
Alternative Names
Bentley, J. L.
Bentley, J. L. (Jon Louis)
Bentley Jon
Bentley, Jon (John Louis)
Bentley, Jon L.
Bentley, Jon L. (Jon Louis)
Jon Bentley Amerikaans informaticus
Jon Bentley amerykański informatyk
Jon Bentley informaticien américain
Jon Louis Bentley
Jon Louis Bentley informatico statunitense
Бентли, Джон
벤틀리, 존
ベントリー, J. L
ベントリー, ジョン
Languages
Covers