Я ищу лучший способ для выполнения этой задачи в Python 2.xпереназначения фиксированный legth массив в Python
У меня есть массив заданного размера, с каким-то элементом, который должен оставаться в заданном положении, идентифицированном атрибут.
Мне нужно удалить элемент из массива и перенести все нефиксированные элементы в верхнюю часть и заполнить недостающую нижнюю запись копией первой записи.
Пример
Запуск массива:
array[0]={property='dynamic', name='A'}
array[1]={property='dynamic', name='B'}
array[2]={property='fixed', name='C'}
array[3]={property='dynamic', name='D'}
array[4]={property='fixed', name='E'}
array[5]={property='dynamic', name='F'}
Удалить один элемент
array[0]={property='dynamic', name='A'}
array[1]={property='dynamic', name='B'}
array[2]={property='fixed', name='C'}
array[4]={property='fixed', name='E'}
array[5]={property='dynamic', name='F'}
Move не являющиеся фиксированные элементы к началу
array[0]={property='dynamic', name='A'}
array[1]={property='dynamic', name='B'}
array[2]={property='fixed', name='C'}
array[3]={property='dynamic', name='F'}
array[4]={property='fixed', name='E'}
конечный результат заполнения последний недостающий слот Wi й верхний элемент
array[0]={property='dynamic', name='A'}
array[1]={property='dynamic', name='B'}
array[2]={property='fixed', name='C'}
array[3]={property='dynamic', name='F'}
array[4]={property='fixed', name='E'}
array[5]={property='dynamic', name='A'}
Что может быть самым быстрым способом для этого? (Свойство, размер массива и элементы все динамики)
Просьба уточнить. Что такое «массив»? Вы используете 'numpy.array'? Или 'array.array'? Или обычный список? – Kevin
Эта операция - «O (n^2)», вам нужно сдвинуть каждый элемент. –
Любой снимок кода, который запускается один раз, или несколько линейных кратных один раз рухнет на o (n). o (n^2) - это то, что вы ожидаете от полного сортировки (например, сортировка пузыря или сортировка сортировки); или o (n log n), если это действительно эффективный вид, похожий на быстрый или shell-тип. – codingCat