Given an array (or stream) of integers and an integer k, return any ordering of the k most frequent values. Implement a solution using a heap and discuss how you would handle ties, negative numbers, very large n, and streaming updates under memory limits. Analyze time and space complexity and outline an alternative bucket-based approach.