Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Бишоп Д. -> "Эффективная робота Java 2" -> 95

Эффективная робота Java 2 - Бишоп Д.

Бишоп Д. Эффективная робота Java 2 — Спб.: Питер, 2002. — 592 c.
ISBN 966-552-107-1
Скачать (прямая ссылка): effektivnayarabotajava2002.djvu
Предыдущая << 1 .. 89 90 91 92 93 94 < 95 > 96 97 98 99 100 101 .. 259 >> Следующая

5 1.90 3,1073
6 0.00 0.0000
7 0.60 1.2649
8 0.00 0.0000
9 7.50 7 . 3522
10 13.00 4 .9441
11 14.60 8.7965
12 23.00 11.5950
И вновь мы выбрали реальные данные, хотя это затрудняет проверку программы и нам сложнее убедиться в том, что получены правильные результаты. Но поскольку начерчен график, нетрудно удостовериться, что значения корректны. Кроме того, доподлинно известно, что методы, определяющие среднее значение и стандартное отклонение, работают корректно, поскольку их проверка уже производилась. Следует подчеркнуть, что это преимущество мы получаем при работе с библиотеками,
f
^rnph
Урви ни осадко*
оот
им
О Ср вднвв значение
месяц
12JQO
д Стандартно в отклонение
Рис 6,13, График из программы Weather
6.4. Сортировка и поиск______________________________________________
Сортировка и поиск часто выполняются при вычислениях. Многие системы предоставляют высокоуровневые команды, которые позволяют сортировать данные и выполнять поиск по различным критериям* В первую очередь мы рассмотрим простейший алгоритм сортировки, время работы которого прямо пропорционально квадрату количества элементов, подлежащих сортировке, а также алгоритм линейного поиска, время выполнения которого пропорционально количеству элементов. Другие
Сортировка и поиск
213
алгоритмы (например, Quicksort и двоичный поиск) работают значительно быстрее, но более сложны, поэтому мы изучим их в главе 15.
Сортировка методом отбора
В процессе сортировки элементы перемещают посредством определенного алгоритма до тех пор, пока они не будут упорядочены в соответствии с каким-л'ибо критерием, Метол, используемый некоторыми игроками в карты для их сортировки» заключается в следующем: они держат в правой руке всю колоду, находят наименьшую карту и перекладывают ее в левую руку, затем берут следующую наименьшую из тех, которые находятся в правой руке. В результате такого отбора в правой руке не останется карт, а в левой будет отсортированная колода. Ниже показано > как этот метод работает,
Леаая рука Правая рука
С 2 3 5 7 9 ------ - - -
Мы можем реализовать этот метод, имея два массива: значения будут отбираться из одного и добавляться в другой. Существует способ, который позволит содержать оба списка в одном массиве. Рассмотрим его. В то время как один список увеличивается, другой сокращается. Когда из неотсортированной части массива выбирается элемент, он перемещается в конец левой части массива, откуда извлекается не соответствующий порядку элемент и перемещается в правую часть, точнее — в тот пробел, который остался после первого элемента. Следует отметить, что изначально в массиве самый левый элемент считается наименьшим. Если среди других элементов массива обнаруживается еще меньший, запоминается его индекс, который присваивается промежуточной переменной в том случае, если в результате перебора всех элементов массива в цикле не обнаружилось еще меньшего. Далее выбранному элементу присваивается значение самого левого {leftmost), а самому левому элементу — значение промежуточной переменной, т.е. происходит обмен* Затем берется следующий элемент правой части, который следует сразу за только что перемещенным наименьшим элементом (lef tmost+l). Таким же образом отыскивается наименьший из оставшихся элементов. Через несколько абзацев мы сможем проанализировать данный алгоритм, а сейчас посмотрим, как выглядит описанная процедура для массива из шести элементов.
Левая рука Правая рука
С 2 3 5 7 9
Подчеркнуты те цифры, которые были перемещены за один проход цикла. Каждый раз рассматривается список, который становится меньше на один элемент. Так продолжается до тех пор, пока не останется только один элемент. На рис. 6.14 представлена ігхсма этого же алгоритма, которая в большей степени соответствует коду.
о
О 2 0 2 3 С 2 3 5 0 2 3 5
7 3 9 0 2 5
7 3 9 - 2 5
7 3 9 - - 5
7 - 9 - - 5
7 - 9 - - -
- - 9 - - -
0
С 2
С 2 3 0 2 3 5 0 2 3 5 7
7 3 9 0 2 5
3 9 7 2 5
9 7 2 5
7 ? 5
9 I
9
214
Глоно 6, Массивы и таблицы
Поскольку сортировка — одна из наиболее распространенных операций, целесообразно разработать соответствующий метод. У него должны быть следующие параметры: массив, который нужно отсортировать, и количество элементов, которые подлежат сортировке* Конечно, для формального параметра следует указать, элементы каких типов будут сортироваться. В разделе 9.2 объясняется, как корректно обойти это требование.
Сортировка методом отбора
До тех пор, пока в списке не останется только один элемент
Для правого списка.
Берем крайний слева элемент, которому присваиваем индекс leftmost. Если есть меньший элемент, меняем его местами с элементом, который имеет индекс leftmost
Предыдущая << 1 .. 89 90 91 92 93 94 < 95 > 96 97 98 99 100 101 .. 259 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.