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

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

Войти
Регистрация
Восстановить пароль
 
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 296
#1

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

21.09.2012, 17:42. Просмотров 624. Ответов 6
Метки нет (Все метки)

Доброго времени суток. Помоги доделать программу.
Я решил сделать эту сортировку через массивы(возможно зря)). И теперь, допусти если у нас элемент их исходного массива imas больше чем последний из второго массива vmas, то сдвинуть все элементы второго массивы на 1 назад, освободив место для нового элемента. + Нужно еще чтобы элемент сравнивался не только со средним элементом vmas, но и если больше то с последующими.Как-то так)
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
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"rus");
    cout<<"\tВведите размер массива\n";
 
    int size;
    cin>>size;
    int *imas = new int[size];
    int *vmas = new int[size];
 
    cout<<"\tВведите последовательность\n";
    for(int i=0;i<size;i++)
    {
        cout<<"imas["<<i + 1<<"] = ";
        cin>>imas[i];
    }
    int q=size/2;
    vmas[q]=imas[0];
 
    //Сортируем
    for(int i=1;i<size;i++)
    {
        if(imas[i]>vmas[size/2])
            vmas[q+1]=imas[i];
        else
            vmas[q-1]=imas[i];
            
    }
    for(int i=0;i<size;i++)
        cout<<vmas[i]<<endl;
           delete []imas;
    delete []vmas;
    system("pause");
    return 0;
}
Добавлено через 37 минут
Подскажите хотябы что мне использовать и т.п
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2012, 17:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка методом центрированных вставок (C++):

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

Сортировка методом Вставок - C++
Вот собственно вопрос. Масив записей структура которого конечная остановка, и время прибытия, нужно посортировать по направлению. ...

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

Сортировка методом простых вставок - C++
Сортировка методом простых вставок - алгоритм S с. Вычисление трудоемкости Замер времени для отсортированного массива, отсортированного в...

Сортировка списка методом простых вставок - C++
Помогите сделать чтобы в программе были двусвязные списки и чтобы списки из файла выводились в нормальном порядке (как в файлах), а не с...

Сортировка диагоналей матрицы методом Шелла/вставок - C++
Дана матрица размерностью n*n, содержащая целые числа. Отсортировать диагонали матрицы, параллельные побочной, по возрастанию элементов...

6
Илларион
8 / 8 / 0
Регистрация: 05.06.2011
Сообщений: 97
21.09.2012, 17:53 #2
Вектора в помощь! Ну или бинарные деревья!
1
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 296
21.09.2012, 17:55  [ТС] #3
А с массивами никак не выйдет?)
0
Илларион
8 / 8 / 0
Регистрация: 05.06.2011
Сообщений: 97
21.09.2012, 18:04 #4
Так а какой массив тебе надо отсортировать, первый или второй?
1
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 296
21.09.2012, 18:17  [ТС] #5
Первый(imas) - массив с исходными элементами. Второй(vmas) - массив в котором происходит сортировка.
0
Илларион
8 / 8 / 0
Регистрация: 05.06.2011
Сообщений: 97
21.09.2012, 18:21 #6
так делай проще! С одним массивом! Если первый элемент больше второго, то поменять местами. И обойти массив такое количество раз, сколько элементов в нем
1
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 296
22.09.2012, 15:59  [ТС] #7
Да это понятно) Просто мне нужно реализовать к завтрашнему дню именно эту сортировку. А она делается с 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]<< ' ';
}
0
22.09.2012, 15:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2012, 15:59
Привет! Вот еще темы с ответами:

Сортировка двумерного массива методом вставок с "конфеткой" - C++
Доброго времени суток. Помогите разобраться со следующим заданием (в форуме С мне не помогли): Необходимо отсортировать двумерный...

Написать программу сортировки методом простых вставок - C++
Написать программу сортировки методом простых вставок элементов массива, имеющих четные индексы.

В двумерной матрице отсортировать столбцы методом вставок - C++
помогите с задачками:) задача №1 В двумерной матрице отсортировать столбцы методом вставок задача №2 Из массива символов размером...

Выполнить сортировку одномерного массива X(100) методом бинарных вставок - C++
Здравствуйте уважаемые пользователи форума, прошу составить программу в с++ просто нужно сдать программу эту через 2 дня


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

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

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