Sorting elements of an array by frequency
Detailed guide and Python implementation for the 'Sorting elements of an array by frequency' problem.
Problem Statement
Write a function sort_by_frequency(arr) that sorts elements of the array by their frequency in descending order. If two elements have the same frequency, the smaller element comes first. Return the sorted array as a list.
- •1 <= len(arr) <= 10^5
- •-10^6 <= arr[i] <= 10^6
Examples
arr = [1, 1, 2, 2, 2, 3]
[2, 2, 2, 1, 1, 3]
2 appears 3 times (most frequent), 1 appears 2 times, 3 appears 1 time.
arr = [4, 4, 5, 5, 6]
[4, 4, 5, 5, 6]
4 and 5 both appear 2 times; 4 < 5 so 4 comes first. 6 appears once.
arr = [9, 9, 9]
[9, 9, 9]
Only one distinct element.
Need a Hint?
Edge Cases to Watch
- Empty input structures
- Single element inputs
- Large numerical bounds
Ready to Solve?
Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.
Recommended Python Resources
Expand your knowledge with related interactive tutorials, cheat sheets, and code comparisons.
Python Try/Except & Error Handling
Prevent your Python scripts from crashing. Learn try, except, finally blocks and how to raise custom exceptions properly.
How to Find the Length of a List in Python
Learn how to find the length of a list in Python using the len() function. Understand the O(1) time complexity and checking counts.
Python pip Package Manager
Command-line reference guide for pip. Learn to install, upgrade, uninstall, and manage Python packages and dependencies.
Python vs Ruby: Scripting, Web Frameworks, and Philosophy
Compare Python and Ruby. Learn the subtle differences in their philosophies, syntax elegancy, web frameworks (Django vs Rails), and execution styles.