Закрыть
×
=0) { let js = text.slice(pos1, pos2); + '<\/' + "script" + '>'; arrText.push(js); // next pos1 = pos2; continue; } } } break; } return arrText; } function OpenDialog(parentDiv, urlContent) { parentDiv = document.getElementById('modal-background'); // new !!!!!!! parentDiv.appendChild(document.getElementById('modal-template')); document.getElementById('modal-background').style.display = "flex"; // !!!!! block document.getElementById('modal-template').style.display = "flex"; // !!!!! document.getElementById('modal-body').innerHTML = ""; post_url(urlContent, "", function(text_from_server) { var element = document.getElementById('modal-body'); element.innerHTML = text_from_server; // add scripts var arrJSText = get_scripts(text_from_server); for (var i=0; i
dir.by
Праздники ...
Праздники ...
Праздник весны и труда (1 мая)
Концерты, выставки ...
Концерты, выставки ...
Музыкальная комедия "Женитьба Рабиновича"|||г. Минск 28 марта, 16 апреля, 17 апреля, 21 мая, 18 июня 2026
Афишу
Спорт занятия ...
Спорт занятия ...
Играем в баскетбол, волейбол, гандбол, мини-футбол
Спорт занятие
Компьютер, программы...
Компьютер, программы...
Объявления ...
Объявления ...
ремонт двигателя ММЗ Д243-1053 для Зил
Объявление
Форум ...
Форум ...
обсуждение...
Поиск
Концерты
Спорт
Форум
Компьютер
Компьютер, программы
→
Математические алгоритмы (пересечение прямоугольников, массивы, графы)
Сортировка массива (алгоритмы)
посмотрели
5347
раз
обновлено: 11 января 2019
Алгоритмы
1)
Алгоритм "Сортировка выбором"
2)
Алгоритм "Сортировка пузырьком"
3)
Алгоритм "Сортировка вставками"
4)
Алгортим "Быстрая сортировка"
Алгоритм "Сортировка выбором"
1.
Находим минимальный элемент в массиве.
2.
Меняем местами минимальный и первый элемент местами.
3.
Опять ищем минимальный элемент в неотсортированной части массива
4.
Меняем местами уже второй элемент массива и минимальный найденный, потому как первый элемент массива является отсортированной частью.
5.
Ищем минимальные значения и меняем местами элементы,пока массив не будет отсортирован до конца.
Алгоритм "Сортировка пузырьком"
1.
Каждый элемент массива сравнивается со следующим.
Если
элемент[k]
>
элемента[k+1]
то происходит замена.
Таким образом самые "легкие" элементы "всплывают" - перемещаются к началу списка.
Самые тяжелые элементы "тонут" - перемещаются к концу.
2.
Повторяем
n-1
раз, где n это количество элементов в массиве
Алгоритм "Сортировка вставками"
1. С самого начала берем 2-ой элемент и смотрим влевую часть массива куда вставить, (если 2-ой элемент меньше 1-го элемента то вставляем перед первым элементом).
2. Берем 3-ий элемент и смотрим влевую часть массива куда вставить перед первым или перед вторым.
3. Берем 4-ый элемент и смотрим влевую часть массива куда вставить
и т.д.
Анимация:
Пример "Сортировка вставками"
C#
Создаем новое C# консольное приложение...
и напишем код
using
System;
namespace
ConsoleApplication1
{
class
Program
{
static
public
void
InsertValue
(
int
posFrom,
int
insertTo,
int
[] vals)
{
// получаем значение
int
a = vals[posFrom];
// смещаем массив вправо
for
(
int
i = (posFrom - 1); i >= insertTo; i--)
{
vals[i+1] = vals[i];
}
// присваиваем (вставляем) значение в нужную позицию
vals[insertTo] = a;
}
// Сортировка вставками
static
public
void
Sort
(
int
[] vals)
{
// идем вправо
for
(
int
i = 1; i < vals.Length; i++)
{
// идем по левой части массива
for
(
int
insertTo = 0; insertTo < i; insertTo++)
{
// нашли место для вставки
if
(vals[i] < vals[insertTo])
{
// вставляем элемент
InsertValue(i, insertTo, vals);
break
;
}
}
}
}
static
void
Main
(
string
[] args)
{
// add values
int
[] values = { 10, 20, 5, 7, 13, 2 };
// сортировка вставками
Sort(values);
// выводим значения на экран
for
(
int
i = 0; i < values.Length; i++)
Console
.WriteLine(values[i]);
// на экране увидим
// 2
// 5
// 7
// 10
// 13
// 20
}
}
}
Алгортим "Быстрая сортировка"
Является одним из самых эффективных алгоритмов сортировки данных.
Вся суть алгоритма сводится к тому, чтобы разбить сложную задачу на маленькие и решить их по отдельности.
Выбирается некая опорная точка и все значения которые меньше перебрасываются влево, все остальные вправо.
Далее для каждой полученной части выполняетя тоже самое, до тех пор пока дробить части уже нельзя.
В конце мы получаем множество отсортированных частей, которые необходимо просто склеить в 1 целое.
Пример
C#
Создаем новое C# консольное приложение...
и напишем код
using
System;
namespace
ConsoleApplication1
{
class
Program
{
static
public
void
QuickSort
(
int
[] array,
int
left,
int
right)
{
int
l = left;
int
r = right;
// берем значение в центре массива
int
valueCenter = array[((l + r) / 2)];
do
{
while (array[l] < valueCenter)
++l;
while (array[r] > valueCenter)
--r;
if
(l <= r)
{
if
(l < r)
{
// меняем местами array[l] и array[r]
int
temp = array[l];
array[l] = array[r];
array[r] = temp;
}
++l;
--r;
}
}
while (l <= r);
// разбиваем на 2 промежутка
if
(left < r)
QuickSort(array, left, r);
if
(l < right)
QuickSort(array, l, right);
}
static
void
Main
(
string
[] args)
{
// add values
int
[] values = { 10, 20, 5, 7, 13, 2 };
// сортировка вставками
QuickSort(values, 0, values.Length-1);
// выводим значения на экран
for
(
int
i = 0; i < values.Length; i++)
Console
.WriteLine(values[i]);
// на экране увидим
// 2
// 5
// 7
// 10
// 13
// 20
}
}
}
На заметку!
Асимптотическая сложность алгоритма
— способ оценки вычислительной сложности алгоритма «с точностью до константы».
Обычно записывается как
О
.
O(n^2)
- такую сложность имеет алгоритм
сортировки пузырьком
.
Это называется
квадратичная сложность
O(n * log(n))
- такую сложность имеет алгоритм
быстрой сортировки
.
log(n)
это имеется в виду логарифм по основанию
2
← Предыдущая тема
Поиск в массиве
Следующая тема →
Графы
Ваши Отзывы ... комментарии ...
Вашe имя
Ваш комментарий
(www ссылки может добавлять только залогиненный пользователь)
+ картинку
Экскурсии по Москве: пешеходные, автобусные и речные прогулки на любой вкус
Анонс!
Ярмарка вакансий для молодежи, работа (учащихся, которые хотели бы подработать в свободное время, а также выпускники)|||Минск, Витебск, Гомель, Гродно, Могилев, Борисов, Полоцк, Брест, Барановичи, Пинск с 13 по 17 апреля 2026
Объявления
Объявления
•
Алгоритм пересечения прямоугольников
•
Поиск в массиве
•
Сортировка массива (алгоритмы)
•
Графы
Ваши вопросы присылайте по почте:
info@dir.by