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

Сортировка методом центрированных вставок - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Масштабирование числовой прямой http://www.cyberforum.ru/cpp-beginners/thread655648.html
Незнаю куда запостить такой вопрос, поэтому в случае чего перенесите Имеется шкала(допустим от 0 до 88) как ее перевести в другую (допустим от нуля до 12) и как перевести шкалу от n до m к шкале от 0 до 1
C++ не могу понять что с выводом помогите найти косяк,у меня при отрицательном "a" он выдаёт результат и "error" хотя должен только "error" таже проблема если b=0 a>0 #include <stdafx.h> #include <iostream> using namespace std; int main() { double a,b; cout<<"VVedite a and b"; http://www.cyberforum.ru/cpp-beginners/thread655619.html
Динамический двумерный массив: найти наибольший из нименьших элементов строк C++
здравствуйте! пишу первый раз, не знаю точно, к С или С++ относится вопрос (п.ч. там нет объектов), я учусь на 2 курсе, нам задали написать программу, в которой можно вводить двумерный массив, меню из 4 пунктов, в пункте "обработка" программа находит наименьший эл-т в каждой строке, затем находит среди них наибольший и выводит на экран его, номер его строки и столбца. я заметил, что если вводить...
C++ Работа С++ программиста с нуля
Приветствую, уважаемые участники форума! Читаю я всякие вакансии в интернете, и они меня вводят в депрессию. В среднем нужно по 2 года опыта работы и высшее образование. А еще, зачастую, кроме С++ нужно знать что-то дополнительно(я промолчу о том, что, чтобы овладеть самой С++ в совершенстве, нужно лет 10 практики). Нет, конечно, я бы может в перспективе и не отказался бы от поступления...
C++ линейная интерполяция http://www.cyberforum.ru/cpp-beginners/thread655570.html
здравствуйте, помогите пожалуйста решить задачу, функция y=f(x) задана таблично в массиве Y(n) при соответствующих значениях аргумента хранящихся в неупорядоченном массиве X(n), не содержащем одинаковых значений. Используя формулу линейной интерполяции построить таблицу значений функции на отрезке, содержащем все заданные значения аргумента, с постоянным заданным шагом h. Можно упорядочить пару...
C++ Аналог Readkey Какой в С++ аналог паскалевского readkey? подробнее

Показать сообщение отдельно
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
22.09.2012, 15:59  [ТС]     Сортировка методом центрированных вставок
Да это понятно) Просто мне нужно реализовать к завтрашнему дню именно эту сортировку. А она делается с 2 массивами(списками,векторами,...)

Добавлено через 1 час 31 минуту
До сих пор пытался сделать, ну всеравно до меня не доходит. Как мне сделать, чтобы исходный элемент (a например) сравнивался и центральным элементом рабочего массива (c) и если он больше, то сравнивается со следующим(s). Если a больше, чем с, но меньше s, то s сдвигаем на один элемент вправо особождая место для a и т.д.
Подскажите плиз)

Добавлено через 20 часов 5 минут
Т.к. я нигде не нашел пример реализации этой сортировки. Вот вылаживаю. Может кому-нибудь понадобится.
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
#include<iostream>
using namespace std;
 
int m1[1000],m2[1000],i,n,centre,l,r,k,j;
 
int main()
{
    cin >> n;
    for (i=1;i<=n;i++)
        cin >> m1[i];
 
    centre=n/2;
    l=centre;
    r=centre;
 
    m2[centre]=m1[1];
    for(i=2;i<=n;i++)
    {
        k=centre;
        if( m2[k]>m1[i])
        {
            while ((k>=l)&&(m1[i]<m2[k]))
                k--;
                for(j=l;j<=k;j++)
                    m2[j-1]=m2[j];
 
        }
        else
        {
            while ((k<=r)&&(m1[i]>=m2[k]))
                k++;
            for(j=r;j>=k;j--)
                m2[j+1]=m2[j];
        }
        m2[k]=m1[i];
        if (k<centre) l--;
        else r++;
        if (l==1)
        {
            for (j=r;j>=1;j--)
                m2[j+1]=m2[j];
            r++;
            l++;
            centre=(l+r)/2;
        }
    }
 
    for (i=l;i<=r;i++)
        cout << m2[i]<< ' ';
}
 
Текущее время: 23:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru