This insertion is happening in O(n) because it has to shift all the elements down and worst case scenario it will shift every element down. (Corrected java says it is O(n) because they use a mathematical formula to insert)
If you want a fast insertion either add it at the end of the arraylist or use a hashmap which is constant time.
Insert into hashmap:
HashMap peopleMap = new Hashmap.....
peopleMap.put(person.name, person);
//(or whatever you want to track)
This sets the key to th persons name and the value to person.
You can also try a hashmap with key (ehatver you want to track) and value the index where the person is in a holder array. The insert is O(i), lookup O(i) and you can sort it as well (I'll leave this as an exercise to the reader)
If the whole purpose of this is to sort, then for simplicity you could insert into a priorityQueue (nLogn) then pop everything into the array which will give you a sorted array