Книга: Язык программирования Euphoria. Справочное руководство
1.1 Пример программы
1.1 Пример программы
Здесь представлен пример завершённой программы Euphoria.
~~~~~~~~~~~
sequence list, sorted_list
function merge_sort(sequence x)
-- сортирует x в порядке возрастания методом рекурсивного слияния
integer n, mid
sequence merged, a, b
n = length(x)
if n = 0 or n = 1 then
return x -- тривиальный случай
end if
mid = floor(n/2)
a = merge_sort(x[1..mid]) -- сортируется первая половина x
b = merge_sort(x[mid+1..n]) -- сортируется вторая половина x
-- слияние двух отсортированных половинок
merged = {}
while length(a) 0 and length(b) 0 do
if compare(a[1], b[1]) then
merged = append(merged, a[1])
a = a[2..length(a)]
else
merged = append(merged, b[1])
b = b[2..length(b)]
end if
end while
return merged & a & b -- слитые данные плюс остатки
end function
procedure print_sorted_list()
-- генерирует sorted_list из list
list = {9, 10, 3, 1, 4, 5, 8, 7, 6, 2}
sorted_list = merge_sort(list)
? sorted_list
end procedure
print_sorted_list() -- эта команда запускает программу
~~~~~~~~~~~
Данный пример содержит 4 отдельные команды, которые выполняются последовательно. Первая объявляет две переменные: list и sorted_list как ряды (sequence) (гибкие массивы). Вторая определяет функцию merge_sort(). Третья определяет процедуру print_sorted_list(). Четвёртая и последняя команда вызывает процедуру print_sorted_list() на исполнение.
Программа печатает на экране:
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}.
merge_sort() так же легко отсортирует {1.5, -9, 1e6, 100} или {"oranges", "apples", "bananas"} .
Данный пример имеется в каталоге Euphoria -- euphoriatutorialexample.ex . Это не самый быстрый из методов сортировки, доступных в Euphoria. Перейдите в каталог -- euphoriademo -- и введите команду "ex allsorts", чтобы проверить хронометраж различных алгоритмов сортировки при возрастании числа сортируемых объектов. Быстрый учебный пример программирования аналогичной функции на Euphoria вы можете также найти в -- euphoriademobenchfilesort.ex .
- Пример установочного скрипта
- СТРУКТУРА ПРОСТОЙ ПРОГРАММЫ
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- 1.2.5. Пример программы
- Пример 17-10. Блочный комментарий
- Примеры
- Какие программы могут изменять битрейт в МР3-файлах, например с 256 Кбит
- 11.4.1. Учебный пример: два способа написания программы калькулятора
- 1.1. Пример программы: родственные отношения
- Пример: перенос программы sortMM (программа 5.5)
- 6.1.2. Учебный пример: параметр -v программы fetchmail
- 5.6. ПРИМЕР ОПИСАНИЯ ПРОГРАММЫ "РЕДАКТОР ТЕКСТОВ"