Results 1 -
3 of
3
Engineering Radix Sort
- COMPUTING SYSTEMS
, 1993
"... Radix sorting methods have excellent asymptotic performance on string data, for which comparison is not a unit-time operation. Attractive for use in large byte-addressable memories, these methods have nevertheless long been eclipsed by more easily programmed algorithms. Three ways to sort strings by ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
Radix sorting methods have excellent asymptotic performance on string data, for which comparison is not a unit-time operation. Attractive for use in large byte-addressable memories, these methods have nevertheless long been eclipsed by more easily programmed algorithms. Three ways to sort strings by bytes left to right---a stable list sort, a stable two-array sort, and an in-place "American flag" sort---are illustrated with practical C programs. For heavy-duty sorting, all three perform comparably, usually running at least twice as fast as a good quicksort. We recommend American flag sort for general use.
Parallel Algorithms For Maximum Subsequence And Maximum Subarray
, 1995
"... Given a sequence Q of n numbers (positive and negative), the maximum subsequence of Q is the contiguous subsequence that has the maximum sum among all contiguous subsequences of Q. Given a two-dimensional array A of n \Theta n numbers (positive and negative), the maximum subarray of A is the con ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
Given a sequence Q of n numbers (positive and negative), the maximum subsequence of Q is the contiguous subsequence that has the maximum sum among all contiguous subsequences of Q. Given a two-dimensional array A of n \Theta n numbers (positive and negative), the maximum subarray of A is the contiguous subarray that has the maximum sum among all contiguous subarrays of A. We present two O(log n)-time parallel algorithms---one for finding the maximum subsequence sum of a given sequence, and the other for finding the maximum subarray sum of a given array. The former is optimal on an EREW PRAM. The latter is optimal on a CREW PRAM, in the sense that the time-processor product matches the current sequential upperbound of O(n 3 ).
Teaching Theoretical Computer Science at the Undergraduate Level: Experiences, Observations, and Proposals to Improve the Status Quo
"... Theoretical computer science is a difficult subject to teach at the undergraduate level for several reasons. Although it is often a required course for graduation, theoretical computer science has the reputation of being a "tough course, " so most undergraduates postpone taking it until ab ..."
Abstract
- Add to MetaCart
Theoretical computer science is a difficult subject to teach at the undergraduate level for several reasons. Although it is often a required course for graduation, theoretical computer science has the reputation of being a "tough course, " so most undergraduates postpone taking it until absolutely necessary, namely, during their senior year. To compound the problem, many students who enter the course have very little theoretical or mathematical background. If the material is not motivated enough in its presentation to the students, the students quickly drown in the terminology and the abundant technical notation, loosing their interest and patience in the process. Since theoretical models constitute an extensive infra-structure upon which rests much of computer science, it is crucial that undergraduates acquire an appreciation of these concepts before they leave school. Based on observations I made while being involved in teaching this course at UCLA for several quarters, I have developed and used some teaching techniques which have been quite successful, both in increasing student interest, as well as in enhancing their understanding of the material. Finally, to help combat declining academic standards, I propose and describe a new course to be added to existing computer science curricula, namely mathematical maturity and problem solving.

