62. Массивы 63. Алгоритмы обработки массивов
Скачать 1.09 Mb.
|
Задачи«A»: Заполнить массив случайными числами и выполнить циклический сдвиг элементов массива вправо на 1 элемент. Пример: Массив: 1 2 3 4 5 6 Результат: 6 1 2 3 4 5 «B»: Массив имеет четное число элементов. Заполнить массив случайными числами и выполнить реверс отдельно в первой половине и второй половине. Пример: Массив: 1 2 3 4 5 6 Результат: 3 2 1 6 5 4 Задачи«C»: Заполнить массив случайными числами в интервале [-100,100] и переставить элементы так, чтобы все положительные элементы стояли в начала массива, а все отрицательные и нули – в конце. Вычислите количество положительных элементов. Пример: Массив: 20 -90 15 -34 10 0 Результат: 20 15 10 -90 -34 0 Количество положительных элементов: 3 Отбор нужных элементовПростое решение: Задача. Отобрать элементы массива A, удовлетворяющие некоторому условию, в массив B. B = [] сделать для i от 0 до N-1 если условие выполняется для A[i] то добавить A[i] к массиву B B = [] for x in A: if x % 2 == 0: B.append(x) добавить x в конец массива B Какие элементы выбираем? ? Отбор нужных элементовРешение в стиле Python: Задача. Отобрать элементы массива A, удовлетворяющие некоторому условию, в массив B. B = [ x for x in A ] if x % 2 == 0 ] если x – чётное число перебрать все элементы A Задачи«A»: Заполнить массив случайными числами в интервале [-10,10] и отобрать в другой массив все чётные отрицательные числа. Пример: Массив А: -5 6 7 -4 -6 8 -8 Массив B: -4 -6 -8 «B»: Заполнить массив случайными числами в интервале [0,100] и отобрать в другой массив все простые числа. Используйте логическую функцию, которая определяет, является ли переданное ей число простым. Пример: Массив А: 12 13 85 96 47 Массив B: 13 47 Задачи«C»: Заполнить массив случайными числами и отобрать в другой массив все числа Фибоначчи. Используйте логическую функцию, которая определяет, является ли переданное ей число числом Фибоначчи. Пример: Массив А: 12 13 85 34 47 Массив B: 13 34 Особенности работы со спискамиA = [1, 2, 3] B = A [1, 2, 3] A B A[0] = 0 [0, 2, 3] A B A = [1, 2, 3] B = A[:] копия массива A [1, 2, 3] A [1, 2, 3] B A[0] = 0 [0, 2, 3] A [1, 2, 3] B Копирование списков[1,2,3] A [4,5,6] B [A,B] C [A,B] D «Поверхностное» копирование: import copy A = [1, 2, 3] B = copy.copy(A) A = [1, 2, 3] B = [4, 5, 6] C = [A, B] D = copy.copy(C) C[0][0] = 0 [1,2,3] A [4,5,6] B 0 A Влияет на C и D! ! «Глубокое» копирование: D = copy.deepcopy(C) [A,B] C [∙,∙] D [1,2,3] A [4,5,6] B [1,2,3] [4,5,6] |