Форум программистов, компьютерный форум CyberForum.ru

Алгоритм сортировки Шелла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ C++ посчитать пример http://www.cyberforum.ru/cpp-beginners/thread811806.html
В главной функции main () ввести входные данные. Обчислить C=3f(a,x,b)+f^2(b,a+0.3,j)-sqrt(f(x,j,0.58) при a=0.8, b=1.55, x=130, j=15.1, f(x,y,z)=x*(y^2) + y*z Люди, помогите сделать лабу, плиз. Ничерта не получается...
C++ Проблемы с pow() Встретился с вообще непонятной ситуацией. Язык C++, оболочка Qt. pow(12,(1/3)) ans=1 pow(12,(0.3333333333333)) ans=2.28943 Согласно гугловскому калькулятору - 2.28942848511 http://www.cyberforum.ru/cpp-beginners/thread811800.html
C++ Получить файл g из чисел исходного файла, в котором не было бы двух соседних чисел с одинаковым знаком
Выполнить задания для текстового и бинарного файлов. Компоненты файла f – целые числа, положительных чисел столько же, сколько отрицательных. Получить файл g из чисел исходного файла, в котором не было бы двух соседних чисел с одинаковым знаком. вообще без понятия помогите
C++ Класс "длинные числа"
Нужно создать класс, которій будет записывать длинное число в масив, а также делать с етим числом следующие опирацыи - деление на 10, умножение на 10, умножение длинного числа на другое длинное число, деление длинного числа, по возможности даже подношение до степеня...прошу помочь, нужно для зачета...
C++ запрос указаной ячейки памяти http://www.cyberforum.ru/cpp-beginners/thread811752.html
Добрый день. Задача вставить в матрицу (динамический двумерный массив) новую колонку. Вопрос можно ли запросить у операционки определенную ячейку памяти, что бы не копировать элементы матрицы.
C++ Выделение динамической памяти Доброго времени суток! я начинающий программист, столкнулась с такой проблемой: выделяю память под динамический массив, например double **TrainingData; TrainingData=new double*; и в цикле TrainingData = new double; во-первых часть TrainingData=new double*; подробнее

Показать сообщение отдельно
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
18.03.2013, 19:11     Алгоритм сортировки Шелла
Цитата Сообщение от GetVariable Посмотреть сообщение
http://lord-n.narod.ru/download/books/walla/programming/Spr_po_C/21/2107.htm
Странная книга, ничего не указано о том, как выбираются последовательности шагов для сортировки.

Щас исправим. Существует довольно много убывающих последовательностей шагов, при которых эффективность сортировки довольно высока.
Например, последовательность, предложенная Кнутом, такого вида: ... 121 40 13 4 1, или в виде формулы: h(i) = 3*i + 1. Начинать нужно с максимального h, меньшего чем размер сортируемого массива, а для вычисления следующего шага просто делить h на 3 без остатка.
Еще существует много последовательностей, основанных на формулах
Также используются убывающие последовательности, которые не расчитываются по формулам, а выбираются эмпирически или на основе хиртых правил
Можно использовать убывающую последовательность вида ...32 16 8 4 2 1, начиная с наибольшей степени числа 2, меньшей размера массива. но эта последовательность очень плохая.

В Седжвике довольно подробно описано про сортировку Шелла. Скачайте книгу и не поленитесь прочитать соответствующий раздел

Добавлено через 9 минут
Слегка накосячил с Кнутом, правильная последовательность расчитывается по формуле hi = 3*hi-1 + 1
 
Текущее время: 19:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru