Joseph Born Kadane Created 2026-10-25 Updated 2026-11-05
Joseph Born Kadane is a statistician whose work connects Bayesian statistics, decision theory and applications of probability to practical evidence. In his own research statement, he describes work on prior elicitation: constructing probability distributions from an investigator's background knowledge, as well as on the foundations and computation of Bayesian inference.[ref]
https://www.stat.cmu.edu/GSS/kadane.html. Carnegie Mellon, Joseph B. Kadane research statement, theoretical interests
His institutional biography records that he joined Carnegie Mellon in 1971 and headed its statistics department from 1972 to 1981.[ref]
https://www.cmu.edu/dietrich/statistics-datascience/people/emeritus/joseph-kadane.html. Carnegie Mellon departmental biography, Bio
In computing, his name is also attached to Kadane's algorithm for the maximum subarray problem: the best segment ending at a new position either extends the preceding best-ending segment or starts at that position. This gives a linear-time dynamic programming solution.Portrait of Joseph Born Kadane
. Photograph from Carnegie Mellon University's official researcher profile. Source. Maximum subarray problem 2026-10-20
Given a finite sequence of real numbers, find a nonempty contiguous block with maximum sum. Its restriction to contiguous blocks distinguishes it from choosing an arbitrary subset. The problem admits a linear-time solution using Kadane's algorithm.
Let be the best sum of a segment ending at position , allowing the empty segment with sum zero. The maximum subarray problem recurrence isAn optimal nonempty segment ending at extends the best suffix ending at , or starts fresh; a negative suffix cannot help. Keep its start index and record endpoints whenever a new overall best is found:
suffix = 0; best = 0
start = 0; bestLeft = 0; bestRight = 0
for i = 0,...,n-1:
suffix = suffix + A[i]
if suffix < 0:
suffix = 0; start = i+1
if suffix > best:
best = suffix
bestLeft = start; bestRight = i+1
return A[bestLeft:bestRight]The half-open endpoint interval is empty initially, so empty input and all-negative input correctly return an empty segment. The invariant identifies the best nonnegative suffix and the best segment in the scanned prefix, proving correctness. This is Kadane's algorithm, using time and auxiliary space, excluding the returned slice. The displayed example yields sum , from the segment .
This version of Kadane's algorithm, named for Joseph Born Kadane, permits the empty subsequence. For , let be the maximum of zero and the weight of a contiguous subsequence ending exactly at position . Let be the best weight anywhere in the first positions. UseA segment ending at either extends one ending at or starts at ; the zero candidate permits discarding a negative predecessor and the empty answer. Any best segment of the first positions either ends at or already occurs in the first . These two decompositions prove the dynamic programming equations by induction.
Here is an implementation returning endpoints, using zero-based indexing:There is exactly one addition per input element, hence additions and comparisons. Auxiliary storage is . The all-negative case retains interval and weight zero. The example returns and weight 8, hence the desired contiguous subsequence.
best_segment(a):
end_weight = best_weight = 0
start = best_lo = best_hi = 0
for j in range(len(a)):
trial = end_weight + a[j]
if trial <= 0:
end_weight = 0
start = j+1
else:
end_weight = trial
if end_weight > best_weight:
best_weight = end_weight
best_lo, best_hi = start, j+1
return (best_lo, best_hi, best_weight)