Предмет: Информатика,
автор: saparkin2018
Выполнить сортировку одномерного массива А[20] случайных целых чисел по возрастанию методом Шелла.Вывести на экран все этапы сортировки. Pascal ABC. Помогите пж)
Ответы
Автор ответа:
0
С++
template< typename RandomAccessIterator, typename Compare >
void shell_sort( RandomAccessIterator first, RandomAccessIterator last, Compare comp )
{
for( typename std::iterator_traits< RandomAccessIterator >::difference_type d = ( last - first ) / 2; d != 0; d /= 2 )
for( RandomAccessIterator i = first + d; i != last; ++i )
for( RandomAccessIterator j = i; j - first >= d && comp( *j, *( j - d ) ); j -= d )
std::swap( *j, *( j - d ) );
}
template< typename RandomAccessIterator, typename Compare >
void shell_sort( RandomAccessIterator first, RandomAccessIterator last, Compare comp )
{
for( typename std::iterator_traits< RandomAccessIterator >::difference_type d = ( last - first ) / 2; d != 0; d /= 2 )
for( RandomAccessIterator i = first + d; i != last; ++i )
for( RandomAccessIterator j = i; j - first >= d && comp( *j, *( j - d ) ); j -= d )
std::swap( *j, *( j - d ) );
}
Похожие вопросы
Предмет: География,
автор: shepetkolili
Предмет: Литература,
автор: Аноним
Предмет: Математика,
автор: mur000
Предмет: География,
автор: ka5rivisunNaSkrohod
Предмет: Математика,
автор: phantomassassin200