| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > Обрабока массивов |
| Автор: ufoman 9.2.2006, 16:34 |
| Если кто знает Pascal... ПОМОГИТЕ, нужно срочно написать программу по обработке массивов, а именно: - Ввод массивов; - Сортировка массивов по возрастанию; - Вывод массивов. Написать нужно просто тект программы (Мне на эезамен нужно, а я Pascal вообще не знаю)... !!!ПОЖАЛУЙСТО ПОМОГИТЕ!!!! |
| Автор: karataev 9.2.2006, 16:45 | ||
| Тебе нужны массивы одномерные? двухмерные? в общем, скольки мерные??? Вот для одномерного:
|
| Автор: Palladin 15.2.2006, 01:31 | ||||||||||||||||
| Вот что у меня на месте учёбы раздали всем может тебе пригодится, тут по самы распростроннёным видам сотрировки массивов: 1. Метод извлечения Фрагмент программы сортировки по неубыванию извлечем минимального элемента с просмотром слева направо имеет вид:
Фрагмент программы сортировки по неубыванию методом включения имеет вид:
3.1. Обмен рядом стоящих элементов с фиксированным числом просмотров. Фрагмент программы упорядочения по неубыванию элементов массива с просмотром слева направо имеет вид:
В результате первого просмотра при i = n проверяются все пары от A[1], A[2] до A[n-1], A[n], т.е. будет выполнено2 (n-1) операций над элементами массива. Если в программу ввести две вспомогательные переменные В и С, то количество операций над элементами массива сокращения. Так, при первом просмотре (i = n) для организации сравнения потребуется только n операций вместо 2(n-1). Фрагмент такой программы имеет вид:
Для прекращения просмотра после упорядочения массива вводится логическая переменная – переключатель (Р), который принимает значение TRUE, если был обмен и FALSE, если обмена не было. Фрагмент программы сортировки обменом с необходимым числом просмотров имеет вид:
Если в данном примере использовать оператор REPEFT, то можно избавиться от присваивания начального значения переменной Р. Фрагмент такой программы имеет вид:
|
| Автор: Fixin 15.2.2006, 22:05 | ||||||||||||
| 4. Сортировка слиянием 4.1. Пусть даны два упорядоченных массива: a[1] ≤ a[2] ≤ … ≤ a [n], b [1] ≥ b[2] ≥… ≥b [m]. Требуется составить из указанных элементов новый массив, упорядоченный по возрастанию, т.е. c[1] ≤ c[2] ≤ … ≤ c[n + m]. Фрагмент программы, реализуют данную сортировку будет следующим:
a[1] ≥ a[2] ≥ … ≥ a [n], b [1] ≥ b[2] ≥… ≥b [m]. Надо получить новый массив, отсортированный в том же порядке, т.е. c[1] ≥ c[2] ≥… ≥ c[n + m]. Фрагмент программы этой сортировки имеет вид:
Пусть дан массив A[1], A[2], ….,A[n] и множество различных значений (ключей): B= b[1], b[2],…b[m], причем A[I] ≤ B, т.е. каждый элемент массива А равен одному из элементов массива В. Кроме того, значения ключей упорядочены по возрастанию: B[1] ‹ b[2] ‹ …‹ b[m]. Необходимо перераспределить элементы массива А таким образом, чтобы они располагались по убыванию. Фрагмент программы, реализующий данное распределение имеет вид:
Одним из методов быстрой сортировки является сортировка Шелла, которая требует выполнения N∙ Log2(N) операций, где N – число сортируемых элементов. Она похожа на метод пузырька, по в отличие от него, начинает сравнивать не смежные, а далеко стоящие друг от друга значения (примерно на N/2) и сортирует все эти значения, а затем уменьшает расстояние между сравниваемыми значениями. На последнем проходе расстояние между ними равно 1 и поэтому фактически этот проход выполняется по методу пузырька. Такая сортировка предложена Д.А. Шеллом и основана на процедуре Дж. Бутройда. Фрагмент программы сортировки элементов методом Шелла имеет вид:
Добавлено @ 22:06 Разделил, из-за превышения лимита размера сообщения. |