Является ли замена элементов непосредственно в массиве в соответствии с количеством эквивалентной «замене» элементов?

#python #arrays

Вопрос:

У меня есть два списка номеров, например

 order = [0,-1,1] array = [0,1,0,-1,0,1,1,-1]   

array всегда будет содержать только элементы order . Задача состоит в том , чтобы отсортировать список массивов так, чтобы он находился в порядке, указанном order , т. е. Для приведенного выше примера вывод должен быть

 output -gt; [0,0,0,-1,-1,1,1,1]  

Я думаю, что ясно, в чем вопрос.

Мой метод решения вышеизложенного состоит в том, чтобы создать количество каждого элемента по порядку:

 count = {-1:2,0:3,1:3}  

Затем просто повторите array и замените каждый элемент в соответствии с количеством и порядком, указанными в order :

 sorting_pointer = 0  for ele in order:   while count[ele]:   array[sorting_pointer] = ele   sorting_pointer  = 1  duplicate_counter[ele] -= 1   return array  

МОЙ ВОПРОС: Для последней партии кода это эквивалентно «замене» элементов? С точки зрения сложности времени и пространства?

Под «обменом» элементами я подразумеваю что-то вроде:

 array[0],array[1] = array[2],array[4]  

Комментарии:

1. Спасибо Дэни — есть ли какие-либо существенные различия между ними? Или их можно рассматривать как совершенно одинаковые?