Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Вставка

Визуализация метода | Характеристики метода | Визуализация метода | Характеристики метода | Визуализация метода | Визуализация метода | Лабораторная работа «Деревья», задание №6. |


Читайте также:
  1. В) нейтральная вставка
  2. Вставка диаграммы
  3. Вставка листа
  4. Вставка нескольких элементов
  5. Вставка полей в основной документ
  6. Вставка рисунков

add(item)

x = h1(item.key)

y = h2(item.key)

for (i = 0; i < m; i++)

if table[x] == null

table[x] = item

return

x = (x + y) mod m

table.resize() //ошибка, требуется увеличить размер таблицы

Поиск

search(key)

x = h1(key)

y = h2(key)

for (i = 0; i < m; i++)

if table[x]!= null

if table[x].key == key

return table[x]

else

return null

x = (x + y) mod m

return null

 

Лабораторная работа «Массивы», задание №30.

Задание.

Даны два массива x[1]<=..<=x[n] и y[1]<=..<=y[n]. Найти их «пересечение», т.е. массив z[1]<=..<=z[m], содержавший их общие элементы, причём кратность каждого элемента в массиве z равняется минимуму из его кратностей в массивах x и y. Число действий должно быть порядка k+1.

Описание алгоритма решения.

В методе Sort() мы сортируем данные в массивах т.к. есть условие x[1]<=..<=x[n]. Затем в методе Union and Multiplicity мы объединяем в массиве z наши массивы a и b. Длина массива z равен длине обоих массивов: a.Length + b.Length. Затем идёт цикл do-while в котором мы ищем индексности кратности элементов. Попутно отлавливаем ошибки в методе catch.

Листинг программы.

void Sort(int[] A)

{

for (int i = 0; i < A.Length; i++)

{

for (int j = i+1; j < A.Length; j++)

{

if (A[j] < A[i])

{

var temp = A[i];

A[i] = A[j];

A[j] = temp;

}

}

}

}

public int[] Union and Multiplicity (int[] a, int[] b)

{

int[] z = new int[a.Length+b.Length];

for(int i = 0; i < a.Length; i++)

z[i] = a[i];

for(int j = 0; j < b.Length; j++)

z[a.Length + j] = b[j];

 

do

{

z[a.Length + j] = Convert.ToInt32(Console.ReadLine());

if (Math.Abs(z[a.Length + j]) > n) {

Console.WriteLine("Нет индексов кратных", k);

}

else i = 0;

}

while ((i < n) || (n > nmax));

catch (Exception e) {

Console.WriteLine(e.ToString());

}

}

 


Дата добавления: 2015-08-17; просмотров: 50 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Характеристики метода| Лабораторная работа «Списки», задание №9.

mybiblioteka.su - 2015-2024 год. (0.006 сек.)