- •Сортировк а и поиск
- •Сортировка
- •Последовательный
- •Бинарный поиск
- •ПРОВЕРКА
- •Двоичный поиск в упорядоченном
- •Классификация сортировок
- •Классификация сортировок
- •Способ выбора элементов
- •1.Обменная сортировка
- •Программа методом
- •1.2. Шейкер-сортировка
- •►void Swap(int *B, int i) //функция обмена
- •Сортировка выбором
- •4. Сортировка выбором
- •Оценка
- •5. Сортировка
- •5.1 ПРОСТАЯ ВСТАВКА
- •►void InsertSort(int A[], int
- •Анализ
- •5.2.Метод Шелла (сортировка
- •►void Shell(int A[], int n)
- •2. Сортировка разделением
- •►// m[] - массив чисел; sm - индекс 1-ого
- •►int GetHoarBorder(int m[], int sm, int em)
- •оценки
- •Сортировка подсчетом
- •Оценка
- •4.3. КВАДРАТИЧНАЯ ВЫБОРКА
- •Оценка
- •A 6. Сортировка слиянием
- •6.1. ОДНОКРАТНОЕ СЛИЯНИЕ
- •Анализ
- •6.2. ПРОСТОЕ СЛИЯНИЕ
- •6.3. ЦИКЛИЧЕСКОЕ СЛИЯНИЕ
- •Пример Циклическое двухпутевое
- •7. Распределяющая
- •PАСПРЕДЕЛЕНИЕ
- •СБОРКА
- •►Для сортировки N T-цифровых чисел, необходимо (N*T) действий
- •8. Пирамидальная
- •Фаза 1: построение пирамиды
- •Для последовательности 06 42 12 55 94 18 44
- •Фаза 2: сортировка
- •Анализ
- •Алгоритм
- •Самые эффективные методы сортировки:
6.2. ПРОСТОЕ СЛИЯНИЕ
6.3. ЦИКЛИЧЕСКОЕ СЛИЯНИЕ
5 |
6 |
3 |
6 |
|
5 |
1 |
1 |
|
0 |
4 |
6 |
1 |
8 |
3 |
0 |
|
2 |
4 |
6 |
8 |
3 |
4 |
1 |
6 |
1 |
1 |
|
|
0 |
|
4 |
5 |
1 |
|
4 |
1 |
4 |
1 |
|
5 |
3 |
|
3 |
|
|
5 |
|
2 |
8 3 5
26
Пример Циклическое двухпутевое
слияние
7. Распределяющая
(Поразрядная)
сортировка.
Элементы массива - Т-разрядные положительные десятичные числа D(j,n) j -я количество цифр в десятичном числе n>=0, т.е.
D(j,n)=floor(n/m)%10,
где m=10^(j-1) - кол-во вспомогательных списков
Пусть j=2 В0,В1,...,В9 - вспомогательные списки (карманы), вначале пустые.
PАСПРЕДЕЛЕНИЕ
►элемент из В добавляется как последний в список Bm, где m=D(j,Ki),
►для примера получаем десять
списков, в каждом из которых j-тые
разряды чисел одинаковы и равны
m.
СБОРКА
►объединяет списки В0,В1,...,В9 в этом же порядке, образуя один список В.
В Т=2
5 |
0 |
0 |
1 |
|
0 |
3 |
1 |
|
6 |
6 |
3 |
0 |
В |
8 |
2 |
4 |
|
|
В |
В В |
В |
|
В |
|
В |
|
|
РАСПРЕДЕЛЕНИЕ |
|
|
|
|
|
||
1 |
|
13 |
0 |
1 |
0 |
1 |
5 |
0 |
0 |
|
2 |
3 |
4 |
4 |
5 |
6 |
6 |
|
СБОРКА 1: |
0 |
1 |
0 |
1 |
5 |
0 |
|
1 |
3 |
|||||||
0 |
2 |
3 |
4 |
4 |
5 |
6 |
6 |
В |
|
|
В |
|
В |
В |
В |
РАСПРЕДЕЛЕНИЕ-2: |
|
|
|
|
|
||
0 0 |
0 0 |
1 |
1 1 |
2 |
3 |
4 |
|
3 4 |
6 8 |
0 |
4 5 |
|
2 |
|
0 |
|
1 |
|
4 |
|
5 |
|
В |
0 |
В |
В |
7 |
|
9 |
|
|
8 |
|
|
0
8
В |
В |
В |
5 |
6 |
7 |
6 |
|
|
►Для сортировки N T-цифровых чисел, необходимо (N*T) действий
►Недостаток - дополнительная память под карманы