You have to shift the array (move items) to keep it sorted, but take care of the index in actor for children if you use index there, if you use pointer, you will not have issue.
You can have a function in the scene manager which do the shift, you call it in actor when AddChild, the actor has a pointer of the scene.
Another approach is to use a root array and a linear array, the linear array is in a random order (the linear array is not sorted).
On this approach you also have two functions in the scene to remove or add an actor in the root array.
Using this approach you then update the scene using the root array recursively.
This isn't possible with your approach, right?
I don't see why.