+ 1
Java code (Remove 0 to behind array)
Can anyone give me explanation of this code? https://code.sololearn.com/cpzwGj3PlUr9
3 Answers
+ 3
It is like the bubble sort algorithm just with zeros.
If a number is 0 swap it with its neighbour. That's what happens inside the second loop.
0 0 1 0 7 0 5 0 6
i = 0
j = 0 -> arr[0] = 0 -> swap arr[0] <-> arr[1]
j = 1 -> arr[1] = 0 -> swap arr[1] <-> arr[2]
....until arr[l - 1] = 0 //last element
after first iteration:
0 1 0 7 0 5 0 6 0
second iteration:
1 0 7 0 5 0 6 0 0
and so on...
+ 2
it search for 0 and if found some, shifts the 0 to the right
it compares pairs and swaps it - in this way - again and again :
(0 0) 1 0 7 0 5 0 6 swap(00)
(0 0) 1 0 7 0 5 0 6
0 (0 1) 0 7 0 5 0 6 swap(01)
0 (1 0) 0 7 0 5 0 6
0 1 (0 0) 7 0 5 0 6 swap(00)
0 1 (0 0) 7 0 5 0 6
0 1 0 (0 7) 0 5 0 6 swap(07)
0 1 0 (7 0) 0 5 0 6
0 1 0 7 (0 0) 5 0 6 swap(00)
0 1 0 7 (0 0) 5 0 6
...
in the end, all zeros are on the right at the end of the array