62. Массивы 63. Алгоритмы обработки массивов
Скачать 1.09 Mb.
|
Быстрая сортировка
Сортировка массива случайных значений: Сортировка в PythonB = sorted( A ) алгоритм Timsort По возрастанию: B = sorted( A, reverse = True ) По убыванию: reverse = True По последней цифре: def lastDigit ( n ): return n % 10 B = sorted( A, key = lastDigit ) key = lastDigit или так: B = sorted( A, key = lambda x: x % 10 ) lambda x: x % 10 «лямбда»-функция (функция без имени) Сортировка в Python – на местеA.sort() По возрастанию: A.sort ( reverse = True ) По убыванию: reverse = True По последней цифре: def lastDigit ( n ): return n % 10 A.sort ( key = lastDigit ) key = lastDigit или так: A.sort( key = lambda x: x % 10 ) lambda x: x % 10 Задачи«A»: Массив содержит четное количество элементов. Напишите программу, которая сортирует по возрастанию отдельно элементы первой и второй половин массива. Каждый элемент должен остаться в «своей» половине. Используйте алгоритм быстрой сортировки. Пример: Массив: 5 3 4 2 1 6 3 2 После сортировки: 2 3 4 5 6 3 2 1 Задачи«B»: Напишите программу, которая сортирует массив и находит количество различных чисел в нем. Используйте алгоритм быстрой сортировки. Пример: Массив: 5 3 4 2 1 6 3 2 4 После сортировки: 1 2 2 3 3 4 4 5 6 Различных чисел: 5 Задачи«C»: Напишите программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком», методом выбора и алгоритма быстрой сортировки. Проверьте ее на разных массивах, содержащих 1000 случайных элементов, вычислите среднее число перестановок для каждого метода. «D»: Попробуйте построить массив из 10 элементов, на котором алгоритм быстрой сортировки c с выбором среднего элемента показывает худшую эффективность (наибольшее число перестановок). Сравните это количество перестановок с эффективностью метода пузырька (для того же массива). § 65. Двоичный поискДвоичный поиск
X = 7 X < 8 8
4 X > 4
6 X > 6
|