Сортировка массива с помощью дерева - VB
Формулировка задачи:
Помогите сделать лабу.
Сортировка массива с помощью дерева
Цель выполнения заданий:
освоение алгоритмов и методов построения дере-вьев и их применение для сортировки массивов.
Задание № 1. Сортировка числового массива с помощью дерева по воз-растанию.
Задание выполняется в Excel.
1.1. Сформировать одномерный массив чисел. Для этого в строку 2 вве-сти массив целых случайных чисел, имеющих равномерный закон распреде-ления в интервале [20, 45] (рис. 1):
Рис. 1.
----------------------------------------------------------
Массив может иметь любую размерность. Для заполнения массива ис-пользовать функции ЦЕЛОЕ() и СЛЧИС() и операцию автозаполнения ячеек Excel.
1.2. Разработать модуль (процедуру) сортировки массива по возраста-нию с помощью дерева. Модуль должен содержать следующие процедуры:
1.2.1. Процедура Read_array. Служит для считывания данных из электронной таблицы и присвоения их одномерному массиву A(N). Размер-ность массива должна определяться автоматически.
1.2.2. Процедура Sort_tree. Основана на обращении к процедуре Shift (служит для построения дерева) с целью сортировки массива A(N). Процеду-ра Sort_tree должна обеспечивать вывод результатов сортировки в электрон-ную таблицу Excel.
1.3. Вывести результаты сортировки и построить бинарное дерево — пирамиду. Дерево должно быть представлено в виде гистограммы и графа,
расположенного в ячейках электронной таблицы Excel.
Варианты задания.
В1. Сформировать данные согласно п. 1.1. задания 1. Массив должен содержать данные действительного типа. Для генерации данных с помощью указанных функций INT()(ЦЕЛОЕ()) и RAND() (СЛЧИС()) создать модуль Gener. Затем выполнить п. 1.2 – 1.3 задания 1, отсортировав массив по убыванию.
1.1. я сделала , а дальше никак
Листинг программы
- Dim a()
- Dim k As Integer
- Dim L, R, x As Integer
- Sub лаб1()
- Call read_array
- End Sub
- Public Sub read_array()
- i = 1
- ReDim a(1)
- While (Cells(11, i) >= 20 And Cells(11, i) <= 50)
- ReDim Preserve a(i)
- a(i) = Cells(11, i)
- i = i + 1
- Wend
- For k = 1 To i - 1
- Cells(13, k) = a(k)
- Next k
- End Sub
Решение задачи: «Сортировка массива с помощью дерева»
textual
Листинг программы
- ' генерируем одномерный массив в строку с номером line, длинной в n элементов целого типа (чисел) в диапазоне [20..45] включительно
- Sub real_gener(line, n As Integer)
- Sheets(1).Range(Cells(line, 1), Cells(line, n)).FormulaLocal = "=ЦЕЛОЕ(СЛЧИС()*(46-20)+20)" ' для генерации целых чисел в диапазоне [a..b] исп формулу: CСЛЧИС()*(b+1-a)+a
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д