Справка о страницах значений

Упорядоченное множество: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Добавлены алгоритмы
отмена: 1) этому не место на стр. значений 2) частные случаи, неясна значимость и авторитетность
 
(не показана 1 промежуточная версия 1 участника)
Строка 5: Строка 5:


{{неоднозначность}}
{{неоднозначность}}

== Бинарные операции над упорядоченными множествами ==

=== Пересечение упорядоченных множеств ===
Сложность алгоритма '''O(m+n)''', где '''m''' и '''n''' — длины входных множеств '''A''' и '''B''' соответственно.

Пример кода на языке программирования Javascript:
<source lang="javascript">
function intersec_sort_arr(array_1,array_2)
{
var n = array_1.length, m = array_2.length, i = 0, k = 0, j = 0, array_3 = [];
while ((i < n) && (j < m)) // пока не дошли до конца массива
{
if (array_1[i] == array_2[j])
{
array_3[k] = array_1[i]; // запишем элемент в массив array_3
k++,i++,j++; // и сдвинем позицию во всех 3 массивах
} else {
if (array_1[i] < array_2[j]) {
i++; // сдвинем позицию в первом массиве
} else {
j++; // сдвинем позицию во втором массиве
}
}
}
return array_3;
}
</source>

=== Разность упорядоченных множеств ===
Сложность алгоритма '''O(m+n)''', где '''m''' и '''n''' — длины входных множеств '''A''' и '''B''' соответственно.

Пример кода на языке программирования Javascript:
<source lang="javascript">
function diff_sort_arr(array_1,array_2)
{
var n = array_1.length, m = array_2.length, i = 0, k = 0, j = 0, array_3 = [];
while ((i < n) && (j < m)) // пока не дошли до конца массива
{
if (array_1[i] == array_2[j])
{
i++,j++;
} else {
if (array_1[i] < array_2[j]) {
array_3[k] = array_1[i];
k++;
i++; // сдвинем позицию в первом массиве
} else {
j++; // сдвинем позицию во втором массиве
}
}
}
while (i < n) {
array_3[k] = array_1[i];
k++, i++;
}
return array_3;
}
</source>

=== Объединение упорядоченных множеств ===
Сложность алгоритма '''O(m+n)''', где '''m''' и '''n''' — длины входных множеств '''A''' и '''B''' соответственно.

Пример кода на языке программирования Javascript:
<source lang="javascript">
function sum_sort_arr(array_1,array_2)
{
var n = array_1.length, m = array_2.length, i = 0, k = 0, j = 0, array_3 = [];
while ((i < n) && (j < m)) // пока не дошли до конца массива
{
if (array_1[i] == array_2[j])
{
array_3[k] = array_1[i];
k++,i++,j++;
} else {
if (array_1[i] < array_2[j]) {
array_3[k] = array_1[i];
k++;
i++; // сдвинем позицию в первом массиве
} else {
array_3[k] = array_2[j];
k++;
j++; // сдвинем позицию во втором массиве
}
}
}
while (i < n) {
array_3[k] = array_1[i];
k++, i++;
}
while (j < m) {
array_3[k] = array_2[j];
k++, j++;
}
return array_3;
}
</source>
=== <nowiki/> ===

Текущая версия от 13:50, 11 февраля 2015

Упорядоченное множество — множество с заданным отношением порядка.