КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Сортировка выбором МАХ (или МIN)
Алгоритмы сортировки массива END NEXT I Алгоритм поиска максимального и минимального значений в массиве S(N) NEXT I DIM S(N) INPUT N RANDOMIZE TIMER CLS Алгоритм формирования и печати исходного массива Оператор RND NEXT I NEXT I DATA 10, 20, 30, 40, 50, 60 NEXT I Способы ввода значений элементов массива OPTION BASE 1 Оператор OPTION BASE Синтаксис: OPTION BASE {0|1}, Где 0 или 1 - № начального элемента массива. Пример: DIM M%(25) Здесь целочисленный массив М% состоит из 25 элементов, а не из 26. 1. Оператором присваивания B(1) = 3 B(2) = 5 B(3) = 7 2. Оператором цикла, с клавиатуры FOR I=1 TO 10 INPUT B(I) 3. Оператором цикла, с применением операторов DATA и READ FOR I=1 TO 6 READ B(I)
4. При помощи датчика случайных чисел: FOR I=1 TO 10 B(I) = RND Это наиболее удобный способ задания массивов при отладке различных примеров обработки элементов массивов. Остановимся на этом способе подробнее. RND – возвращает случайное число одинарной точности, вырабатываемое датчиком случайных чисел, равномерно распределенных на интервале [0; 1]. Поясним свойства псевдослучайной последовательности. Чтобы случайные числа не повторялись при повторном обращении к датчику надо применять в начале программы оператор RANDOMIZE [число]. [Число] –это число, используемое для инициализации генератора случайных чисел. Если оно не указано, то RANDOMIZE его запрашивает. Рекомендуется в качестве такого числа брать показания таймера. В этом случае в программе (до применения оператора RND, обычно в начале программы ) следует записать – RANDOMIZE TIMER Если надо, чтобы вырабатываемые числа лежали в интервале [-N; N], то можно применить выражение 2*N*RND - N Если надо, чтобы вырабатываемые числа лежали в интервале [0; N], то надо применить выражение
N*RND Если надо, чтобы вырабатываемые числа лежали в интервале [- N; N-1] и были целыми, то можно применить выражение INT(2*N*RND - N) и т. д.
PRINT “Введите размер массива “; PRINT “Исходный массив:” FOR I=0 TO N S (I) = INT(200*RND - 100) PRINT S (I), MAX = S (0): J = 0 MIN = MAX: K = 0 FOR I=1 TO N IF S (I) > MAX THEN MAX = S (I): J = I IF S (I) < MIN THEN MIN = S (I): K = I PRINT “ MAX =”; S (J), “MIN =”; S (K) Таким образом, максимальный элемент массива - S (J), м инимальный - S (K). Минимальные и максимальные значения массива можно получить, отсортировав массив. Например, в случае сортировки массива по возрастанию первый элемент массива – минимальный, а последний – максимальный. Сортировка массива – это упорядочение по возрастанию или убыванию значений его элементов в соответствии с их индексом. Алгоритм основан на определении и выборе минимального элемента вначале из всего массива, потом – из оставшегося и так последовательно до исчерпания всего массива. Выбираемые элементы вставляются по порядку в начало массива: сначала самый малый, затем минимум, найденный вторым и т. д. В итоге мы получаем отсортированный по возрастанию массив. Если мы хотим иметь массив, отсортированный по убыванию, то соответственно находим и ставим последовательно в начало массива элементы с максимальными значениями.
FOR I = 1 TO N-1 MIN = S(N) K=N FOR J = N TO I STEP –1 IF S(J) < MIN THEN MIN= S(J): K=J
Дата добавления: 2014-01-06; Просмотров: 544; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |