Содержание
- 2. Программирование на языке Python § 62. Массивы
- 3. Что такое массив? Массив – это группа переменных одного типа, расположенных в памяти рядом (в соседних
- 4. Что такое массив? A массив 2 15 НОМЕР элемента массива (ИНДЕКС) A[0] A[1] A[2] A[3] A[4]
- 5. Массивы в Python: списки A = [1, 3, 4, 23, 5] A = [1, 3] +
- 6. Генераторы списков A =[ i for i in range(10) ] [0, 1, 2, 3, 4, 5,
- 7. Добавление элементов A = [1, 2, 3] x = 5 A.append ( x+3 ) # [1,
- 8. Удаление элементов A = [1, 2, 3] x = A.pop ( 1 ) # x =
- 9. Ввод массива с клавиатуры Создание массива: Ввод с клавиатуры: N = 10 A = [0]*N for
- 10. Ввод массива с клавиатуры Ввод без подсказок: Ввод в одной строке: A = [ int(input()) for
- 11. Ввод массива с клавиатуры Ввод в одной строке: A=[] N=int(input()) for i in input().split(): A.append(int(i)) Ввод
- 12. Ввод с клавиатуры и вывод массива Ввод в одной строке и Вывод массива n=int(input()) A=map(int,input().split(maxsplit =
- 13. Вывод массива на экран Как список: print ( A ) [1, 2, 3, 4, 5] В
- 14. Как обработать все элементы массива? Создание массива: Обработка: N = 5 A = [0]*N # обработать
- 15. Как обработать все элементы массива? Обработка с переменной: i = 0; # обработать A[i] i +=
- 16. Заполнение случайными числами from random import randint N = 10 A = [ randint(20,100) for x
- 17. Перебор элементов Общая схема (можно изменять A[i]): for i in range(N): ... # сделать что-то с
- 18. Этапы работы с массивом a=[] n=int (input ("Введи кол-во элементов массива")) for i in input().split(): a.append(int
- 19. Три способа создания массива: Заполнить один массив случайными числами, другой - введенными с клавиатуры числами, в
- 20. Вывод чисел в обратном порядке a = int(input()) b = int(input()) a=[i for i in range
- 21. Заполнение случайными числами from random import randint N = 10 A = [ randint(20,100) for x
- 22. Подсчёт количества нужных элементов Задача. В массиве записаны данные о росте баскетболистов. Сколько из них имеет
- 23. Сумма элементов массива summa = 0 for x in A: if 180 summa += x print
- 24. Перебор элементов Среднее арифметическое: count = 0 summa = 0 for x in A: if 180
- 25. Задан массив из натуральных чисел. Выведите его в обратном порядке через пробел. def print_rev(arr,k): if k
- 26. Программирование на языке Python § 63. Алгоритмы обработки массивов
- 27. Поиск в массиве Найти элемент, равный X: i = 0 while A[i] != X: i +=
- 28. Поиск в массиве nX = -1 for i in range ( N ): if A[i] ==
- 29. for i in range ( N ): if A[i] == X: print ( "A[", i, "]=",
- 30. Максимальный элемент M = A[0] for i in range(1,N): if A[i] > M: M = A[i]
- 31. Максимальный элемент и его номер
- 32. Максимальный элемент и его номер M = max(A) nMax = A.index(M) print ( "A[", nMax, "]=",
- 33. Реверс массива «Простое» решение: for i in range( N ): поменять местами A[i] и A[N-1-i] N//2
- 34. Реверс массива for i in range(N//2): c = A[i] A[i] = A[N-1-i] A[N-1-i] = c Варианты
- 35. Циклический сдвиг элементов «Простое» решение: c = A[0] for i in range(N-1): A[i] = A[i+1] A[N-1]
- 36. Срезы в Python A[1:3] [12, 5] A[2:3] [5] A[:3] [7, 12, 5] A[0:3] с начала A[3:N-2]
- 37. Срезы в Python – отрицательные индексы A[1:-1] [12,5,8,…,18,34,40] A[1:N-1] A[-4:-2] [18, 34] A[N-4:N-2]
- 38. Срезы в Python – шаг A[1:6:2] [12, 8, 18] A[::3] [7, 8, 34] A[8:2:-2] [23, 34,
- 39. Отбор нужных элементов Простое решение: Задача. Отобрать элементы массива A, удовлетворяющие некоторому условию, в массив B.
- 40. Отбор нужных элементов Решение в стиле Python: Задача. Отобрать элементы массива A, удовлетворяющие некоторому условию, в
- 41. Особенности работы со списками A = [1, 2, 3] B = A [1, 2, 3] A
- 42. Копирование списков «Поверхностное» копирование: import copy A = [1, 2, 3] B = copy.copy(A) A =
- 43. Программирование на языке Python § 64. Сортировка
- 44. Что такое сортировка? Сортировка – это расстановка элементов массива в заданном порядке. …по возрастанию, убыванию, последней
- 45. Метод пузырька (сортировка обменами) Идея: пузырек воздуха в стакане воды поднимается со дна вверх. Для массивов
- 46. Метод пузырька 2-й проход: 3-й проход: 4-й проход:
- 47. Метод пузырька 1-й проход: сделать для j от N-2 до 0 шаг -1 если A[j+1] #
- 48. Метод пузырька 1-й проход: for j in range(N-2, -1 ,-1): if A[j+1] # поменять местами A[j]
- 49. Метод пузырька for i in range(N-1): for j in range(N-2, i-1 ,-1): if A[j+1] A[j], A[j+1]
- 50. a=[] n=int (input ("Введи кол-во элементов массива")) for i in input().split(): a.append(int (i)) for y in
- 51. Метод выбора (минимального элемента) Идея: найти минимальный элемент и поставить его на первое место. for i
- 52. Метод выбора (минимального элемента) for i in range(N-1): if i!= nMin: A[i], A[nMin] = A[nMin], A[i]
- 53. Сортировка слиянием Слияние отсортированных массивов: A B С Na = len(A); Nb = len(B) iA =
- 54. Сортировка слиянием def mergeSort( A ): if len(A) mid = len(A) // 2 L = A[:mid]
- 55. Сортировка слиянием def merge( A, B ): Na = len(A); Nb = len(B) iA = iB
- 56. Сортировка слиянием задача разбивается на несколько подзадач меньшего размера; эти подзадачи решаются с помощью рекурсивных вызовов
- 57. Быстрая сортировка (QuickSort) разделение Медиана – такое значение X, что слева и справа от него в
- 58. Быстрая сортировка (QuickSort) B1: B2: > X BX: = X import random def qSort ( A
- 59. Сравнение алгоритмов сортировки
- 60. Быстрая сортировка «на месте» Шаг 2: переставить элементы так: при сортировке элементы не покидают « свою
- 61. Быстрая сортировка Разделение: выбрать любой элемент массива (X=67) установить L = 0, R = N-1 увеличивая
- 62. Быстрая сортировка
- 63. Быстрая сортировка N = 7 A = [0]*N # заполнить массив qSort( A, 0, N-1 )
- 64. Быстрая сортировка def qSort ( A, nStart, nEnd ): if nStart >= nEnd: return L =
- 65. Быстрая сортировка Случайный выбор элемента-разделителя: from random import randint def qSort ( A, nStart, nEnd ):
- 66. Сортировка в Python B = sorted( A ) алгоритм Timsort По возрастанию: B = sorted( A,
- 67. Сортировка в Python – на месте A.sort() По возрастанию: A.sort ( reverse = True ) По
- 68. Программирование на языке Python § 65. Двоичный поиск
- 69. Двоичный поиск X = 7 X 8 4 X > 4 6 X > 6 Выбрать
- 70. Двоичный поиск X = 44
- 71. Двоичный поиск L = 0; R = N # начальный отрезок while L c = (L+R)
- 72. Двоичный поиск скорость выше, чем при линейном поиске нужна предварительная сортировка Число сравнений:
- 74. Скачать презентацию