Sort an array according to count of set bits
You are given an array consisting of N positive integers, and your task is to sort the array in decreasing order of count of set bits in the binary representation of the integers present in the array.
In other words, you have to modify the array such that an integer with more number of set bits should appear before the integer which has lesser number of set bits in its binary representation.
The number of set bits is nothing but the number of 1s present in the binary representation of the integer. For example, the number of set bits in 5(0101) is equal to 2.
Note :
1. If any two numbers have the same count of set bits, then in the sorted array they will appear in the order in which they appear in the original array. For example, let the array be { 2, 4, 3}, in this case, both 2 and 4 have the same number of set bits so the answer will be {3, 2, 4} and not {3, 4, 2}, because in the original array 2 appears before 4.
2. The array may contain duplicate elements.
Input Format :
The first line of input contains the integer T, denoting the number of test cases.
The first line of each test case contains an integer N, denoting the size of the array.
The second line of each test case contains N space-separated integers denoting the array elements.
Output Format :
The only line of output of each test case consists of N space-separated integers, the elements of the array in the order as described in the problem statement
Note :
You do not need to print anything, it has already been taken care of. Just implement the given function. Also, you need to modify the given array in-place.
Constraints :
1 <= T <= 50
1 <= N <= 10^4
1 <= arr[i] <= 10^9
CodingNinjas
author
2y
Multimap
- Maintain a Multimap to store the pair of integer and its set bit count.
- The trick is to make (-1*count of set bits) as the key of the map because we have to sort the array on the basis of the c...read more
CodingNinjas
author
2y
Customized Comparator
- Make use of comparator function while calling the inbuilt sort function (Comparator functions are the functions that forms the basis of the comparison based sorting approach).
- Desi...read more
CodingNinjas
author
2y
Counting Sort
- Maintain an array of vectors( vector
name[size]) of size 33( Because here we are considering that each element of the input array is of max 32 bits). - Now traverse all the elements...read more
Add answer anonymously...
Top Adobe Product Intern interview questions & answers
Popular interview questions of Product Intern
Stay ahead in your career. Get AmbitionBox app
Helping over 1 Crore job seekers every month in choosing their right fit company
65 L+
Reviews
4 L+
Interviews
4 Cr+
Salaries
1 Cr+
Users/Month
Contribute to help millions
Get AmbitionBox app