Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2016, 16:03   #1
JanCover
Новичок
Джуниор
 
Регистрация: 09.03.2016
Сообщений: 10
Смущение Алгоритмы внутренней сортировки

Приветствую братцы, прошу вас о помощи в одном не сложном дельце, помогите люди добрые с программой, а именно написанием, коль вам не сложно будет. Очень надо, не могу понять как сделать данное задание. =(

ЗАДАНИЕ:
1. Написать программу, реализующую сортировку массива заданным способом
(согласно варианту).
2. Сравнить число сравнений (С) и обменов (М) для числовых массивов, содержа-
щих различное число элементов (20, 500, 1000, 3000, 5000, 10000), выбираемых слу-
чайным образом. Оценить время сортировки.
3. Исследовать влияние начальной упорядоченности массива (отсортированный,
отсортированный в обратном порядке, отсортирован случайным образом).
4. Все полученные данные ввести в таблицу 1. Сравнить эффективности сорти-
ровки массивов разной размерности и упорядоченности. Сделать выводы.

Вариант 9: Сортировка Шелла (ℎ i-1 = 3ℎi + 1: 1,4,13,40,121, … )

Язык программирование в принципе не важен, главное результат =)
Изображения
Тип файла: png Снимок.PNG (21.2 Кб, 41 просмотров)
JanCover вне форума Ответить с цитированием
Старый 09.03.2016, 16:08   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Таки проблема в чем?
Берите и считайте:
https://ru.wikipedia.org/wiki/%D0%A1...BB%D0%BB%D0%B0
http://algolist.manual.ru/sort/shell_sort.php
https://ru.wikibooks.org/wiki/%D0%A0...BB%D0%BB%D0%B0
p51x вне форума Ответить с цитированием
Старый 09.03.2016, 16:24   #3
JanCover
Новичок
Джуниор
 
Регистрация: 09.03.2016
Сообщений: 10
По умолчанию

Потому я и попросил о помощи в написании данной программы, я всё написал, если ты не соизволил прочесть всё нормально, то это твои проблемы.
И, кстати, вот класс на Java SE, просто надо доделать, но с Java не в ладах.

Код:
public class Sorter {
 
    //сортировка методом Шелла
    public void shellSort(int[] arr) {
        int swaps = 0;
        int dim1 = 9;
        int dim2 = 6;
        int dim3 = 3;
        //first iteration
        for (int i = 0; i < arr.length - dim1; i++) {
            for (int j = i + dim1; j < arr.length; j += dim1) {
                if (j < arr.length) if (arr[i] > arr[j]) {
                    int x = arr[i];
                    arr[i] = arr[j];
                    arr[j] = x;
                    swaps++;
                }
            }
        }
        //second iteration
        for (int i = 0; i < arr.length - dim2; i++) {
            for (int j = i + dim2; j < arr.length; j += dim2) {
                if (j < arr.length) if (arr[i] > arr[j]) {
                    int x = arr[i];
                    arr[i] = arr[j];
                    arr[j] = x;
                    swaps++;
                }
            }
        }
        //third iteration
        for (int i = 0; i < arr.length - dim3; i++) {
            for (int j = i + dim3; j < arr.length; j += dim3) {
                if (j < arr.length) if (arr[i] > arr[j]) {
                    int x = arr[i];
                    arr[i] = arr[j];
                    arr[j] = x;
                    swaps++;
                }
            }
        }
        //final iteration
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length; j++) {
                if (arr[i] < arr[j]) {
                    int x = arr[i];
                    arr[i] = arr[j];
                    arr[j] = x;
                    swaps++;
                }
            }
        }
 
 
        System.out.println("Sorting by Shell Methods:");
        for (int anArr : arr) {
            System.out.print(anArr + " ");
        }
        System.out.println("\nSwaps by this methods: " + swaps);
    }
 
    public void hoareSort(int[] arr) {
        int swaps = 0;
        swaps = iterateHoare(arr, 0, arr.length-1);
 
        System.out.println("Sorting by Hoare Methods:");
        for (int anArr : arr) {
            System.out.print(anArr + " ");
        }
        System.out.println("\nSwaps by this methods: " + swaps);
    }
 
}
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 09.03.2016 в 16:59.
JanCover вне форума Ответить с цитированием
Старый 10.03.2016, 05:19   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от JanCover Посмотреть сообщение
Вариант 9: Сортировка Шелла (ℎ i-1 = 3ℎi + 1: 1,4,13,40,121, … )

Язык программирование в принципе не важен, главное результат =)
Вот здесь, почти все самые популярные алгоритмы сортировки.
А здесь, вспомогательные функции, в частности и замер времени выполнения.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритмы внутренней сортировки JanCover Помощь студентам 0 09.03.2016 13:32
Составление алгоритмов решения задач с использованием методов внутренней сортировки stalin765 Помощь студентам 0 28.05.2012 20:42
Алгоритмы сортировки пирамидальный(кучей) и быстрой сортировки (с++) mmd12 Помощь студентам 4 17.05.2012 14:14