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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.73
Родионова
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 13
#1

Сортировка методом квадратичной выборки - C++

22.12.2009, 15:50. Просмотров 2959. Ответов 1
Метки нет (Все метки)

Сортировка методом квадратичной выборки. Массив, состоящий из М элементов, разбивают на SQRT(M) групп по SQRT(M) элементов в каждой. В результате сплошного просмотра в каждой группе находят и заносят в рабочие переменные элементы с наименьшими значениями. Затем просматривают переменные и переменную с наименьшим значением заносят в выходной массив. После этого осуществляют поиск наименьшего элемента в той группе, из переменной которой элемент был перенесен в выходной массив. Процесс повторяют. При каждом занесении элемента в переменную ее стирают в основном массиве.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2009, 15:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка методом квадратичной выборки (C++):

Блок-схема квадратичной выборки - C++
Нарисуйте, пожалуйста, блок-схему квадратично выборки.

Решение функции методом Квадратичной аппроксимации и Фибоначчи - C++
Помогите решить данную функцию методом квадратичной аппроксимации и Фибоначчи f(x) = log(cos(x))+cos(x) Интервал Экстремум max

Упорядочить элементы столбцов матрицы методом простой выборки - C++
Написати програму алгоритмічною мовою С++ згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij}...

Сортировка массива пузырьковым методом и методом вставки - C++
нужно написать программу которая будет делать сортировку этими способами в массиве 3x10, две кнопки, таблица (3х10), собственно...

Сортировка методом выбора и методом пузырьков - C++
Доброго времени суток, форумчане). Я не спец в программировании, сразу говорю). Нам с другом дали задание сравнить эти 2 сортировке ( в...

Быстрая сортировка (сортировка методом Хоара) - C++
Ввести массив x1,x2,...,x20 в диапазоне . Требуется расположить отрицательные элементы в порядке убывания. Вывести массивы до и после...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Furioness
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 4
10.02.2015, 21:51 #2
Долго я долбался с этой хренью, и когда она всё-таки заработала, на радостях, решил поделиться, ибо нигде кода не нашёл.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
vector<int> TetragonSort(vector<int> arr)
{
    int min=0, i, j, k;
    vector<int> additList, resultList;
 
    int nGroups = sqrt(arr.size());
    if (nGroups*nGroups < arr.size( ))
        nGroups++;
 
    additList.assign(nGroups, INT_MAX); //заполняем nGroups ячеек значением INT_MAX (ВРОДЕ должно работать даже если в начальном массиве будет значение INT_MAX)
 
    //заполнение первичными значениями дополнительнгго списсска
    for (i = nGroups*min; i < arr.size( ); i += nGroups)
    {
        min = i; //индекс минимального
        for (j = i + 1; j < i + nGroups && j < arr.size( ); j++)
        {
            if (arr[j] < arr[min])
                min = j;
        }
        //добавление эл-а в доп. список и заполние эл-а в осн.
        additList[i / nGroups] = arr[min];
        arr[min] = INT_MAX;
    }
 
    //основной цикл
    while (true)
    {
        //формирование результата------------
        min = 0;  //индекс минимального
        for (k = 1; k < additList.size(); k++)
        {
            if (additList[k] < additList[min])
                min = k;
        }
        resultList.push_back(additList[min]); 
        //------------------------------------
 
        if (resultList.size() == arr.size()) //точка выхода
            break;
 
        //основная работа
        i = nGroups*min;  //начальная точка просмотра
        min = i; //индекс минимального
        for (j = i + 1; j < i + nGroups && j < arr.size(); j++)
        {
            if (arr[j] < arr[min])
                min = j;
        }
        //добавление эл-а в доп. список и заполние эл-а в осн.
        additList[i / nGroups] = arr[min];
        arr[min] = INT_MAX;
    }
 
 
    return resultList;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2015, 21:51
Привет! Вот еще темы с ответами:

Сортировка методом шелла - C++
День добрый! Хочу разобраться с алгоритмом. Перепишете его пожалуйста без шаблонов, если я правильно понял что это такое. Спасибо. Вот...

Сортировка методом Пузырька - C++
Сортировка методом Пузырька!!! Эта программа мне нужна на курсовую - помогите сделать! Если можно не самую простую!!!:help:

Сортировка методом вставок - C++
Заполнить массив размером 20 случайными числами в диапазоне от 0 до 200. Во второй массив выбрать все двузначные элементы, отсортировать...

Сортировка методом вставок - C++
Заполнить массив размером 20 случайными числами в диапазоне от 0 до 200. Во второй массив выбрать все двузначные элементы, отсортированные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru