С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 20.10.2018
Сообщений: 104
1

Сортировка методом вставки

24.03.2019, 08:45. Показов 2167. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сортировка методом вставки. Помогите изменить реализацию так, чтобы осуществлялась сортировка четных элементов массива (т.е. с четными значениями).

C++
1
2
3
4
5
6
7
8
9
10
11
void insertSort(int* a, int size) 
{
    int tmp;
    for (int i = 1, j; i < size; ++i) 
    {
        tmp = a[i]; 
        for (j = i - 1; j >= 0 && a[j] > tmp; --j) 
           a[j + 1] = a[j];    
        a[j + 1] = tmp;     
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
24.03.2019, 08:45
Ответы с готовыми решениями:

Сортировка массива по возрастанию методом "вставки с бинарным поиском места вставки"
Задан массив вещественных чисел x0,x1,...,xn-1. Произвести сортировку массива по возрастанию...

Сортировка массива пузырьковым методом и методом вставки
нужно написать программу которая будет делать сортировку этими способами в массиве 3x10, две...

Сортировка методом вставки
В файле input.txt содержатся сведения о группе студентов в формате: номер группы; запись о...

Сортировка методом вставки
Здравствуйте. Полностью задание писать не буду, напишу то, что входит в его суть (и код тоже...

3
65 / 31 / 18
Регистрация: 16.03.2019
Сообщений: 84
24.03.2019, 12:21 2
Лучший ответ Сообщение было отмечено Niggainsoul как решение

Решение

Здравствуйте.
Преобразовал... Сортируются только элементы с четными значениями.
Элементы с нечетными значениями остаются на своих местах.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void insertSort(int* a, int size)
{
    int tmp;
    for (int i = 1; i < size; i++)
    {
        if (a[i]%2)
            continue;
        int k = i;
        tmp = a[i];
        for (int j = i - 1; j >= 0; j--)
        {
            if (!(a[j]%2))
            {
                if (a[j] <= tmp)
                    break;
                a[k] = a[j];
                k = j;
            }
        }
        a[k] = tmp;
    }
}
Протестируйте пожалуйста.
1
0 / 0 / 0
Регистрация: 20.10.2018
Сообщений: 104
24.03.2019, 12:35  [ТС] 3
Ctty, огромное спасибо! Всё работает. Если вам не трудно, можете написать для элементов, записанных на нечетных местах? Буду очень благодарен.
0
65 / 31 / 18
Регистрация: 16.03.2019
Сообщений: 84
24.03.2019, 14:35 4
Лучший ответ Сообщение было отмечено Niggainsoul как решение

Решение

Для элементов с нечетными индексами 1,3,5 и т.д.
C++
1
2
3
4
5
6
7
8
9
10
11
12
void insertSort(int* a, int size)
{
    int tmp;
    for (int i = 3; i < size; i += 2)
    {
        int j;
        tmp = a[i];
        for (j = i - 2; j >= 1 && a[j] > tmp; j -= 2)
            a[j + 2] = a[j];
        a[j + 2] = tmp;
    }
}
Добавлено через 5 минут
Для элементов с четными индексами 0, 2, 4 и т.д.
C++
1
2
3
4
5
6
7
8
9
10
11
12
void insertSort(int* a, int size)
{
    int tmp;
    for (int i = 2; i < size; i += 2)
    {
        int j;
        tmp = a[i];
        for (j = i - 2; j >= 0 && a[j] > tmp; j -= 2)
            a[j + 2] = a[j];
        a[j + 2] = tmp;
    }
}
1
24.03.2019, 14:35
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
24.03.2019, 14:35
Помогаю со студенческими работами здесь

Сортировка методом центрированной вставки
Доброго времени суток. Может у кого-нибудь есть пример на С++ этой сортировки? Буду рад поглядеть)...

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

Сортировка стека методом вставки
Дан стек реализованный статически. Неоходимо написать функцию вставки в него элемента с...

Сортировка диагоналей матрицы методом вставки
В общем нужно сортировать методом вставки диагонали, параллельные главной по убыванию Код сделан...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru