Большая часть причины изменения заключается в том, что ваше приложение запускается виртуальной машиной, работающей в операционной системе общего назначения, на эмулируемом компьютере, который работает в операционной системе общего назначения на реальном компьютере.
За исключением вашего приложения, каждая из вещей в этой куче (JVM, на которой работает ваше приложение, ОС Linux на Android, эмулятор и любая другая ОС, на которой он работает), может использовать процессор (реальный или виртуальный) для выполнения чего-то другого в любое время на любой срок. Эти циклы уберут от выполнения вашей программы и добавят к ее времени выполнения настенных часов. Результатом является полностью недетерминированное поведение.
Если вы посчитаете использованные циклы процессора эмулятора и не учитываете то, что делает Java за кулисами, я не сомневаюсь, что стандартное отклонение во времени выполнения будет намного ниже, чем то, что вы видите для тех же входных данных. Эмулируемая среда Android не место для тестирования алгоритмов, потому что слишком много переменных, которыми вы не можете управлять.