function activitySelection(activities)
sort activities by end time ascending
count := 1
lastEnd := activities[0].end
for i from 1 to length of activities - 1
if activities[i].start >= lastEnd then
count := count + 1
lastEnd := activities[i].end
return count
Time: for sorting, for scanning. Total: . Space: extra (assuming in-place sort).