Sort an array by number of set bits. For example,
- Input: arr = [0,1,2,3,4,5,6,7,8]
- Output: [0,1,2,4,8,3,5,6,7]
example 2
- Input: arr = [1024,512,256,128,64,32,16,8,4,2,1]
- Output: [1,2,4,8,16,32,64,128,256,512,1024]
I tried count number of set digits in a number, after that I am stuck. I am complete beginner.
arr = [1,2,3,4,5,6]
for i in range(len(arr)):
a = arr[i]
count1 = 0
while(a>0):
d = int(a/2)
s = a%2
a = d
#print(s, end=" ")
if s == 1:
count1+=1
print(arr[i],count1)