0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 34

Сортировка по убыванию методом пузырька

24.04.2016, 20:51. Показов 2648. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер! Очень нужна помощь. Задание такое: даны два массива. Массив А состоит из N элементов и отсортирован по возрастанию. Массив В состоит из М элементов и отсортирован по убыванию. Разработать программу для слияния этих массивов в отсортированный по убыванию массив С, не содержащий одинаковых элементов.

Решение:
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
#include <stdlib.h>
#include <stdio.h>
 
int main ()
{
//  ***************************Инициализация данных*********************
    int MAS_one[4]={1,3,5,7};
    int MAS_two[4]={8,6,4,3};
    int MAS_rez[4*2];
    int tmp, i,j;
 //****************************Объединение массивов*********************
    for (int i=0; i<4; i++) 
    { 
        MAS_rez[i]=MAS_one[i];
        MAS_rez[i+4]=MAS_two[i];
    }
 //****************************Сортировка*******************************
for ( i=0; i<4-1; i++)
{
     for ( j=0; j<4-1; i++)
     {
         if (MAS_rez[j]<MAS_rez[j+1])
         {
            tmp=MAS_rez[j];
            MAS_rez[j]=MAS_rez[j+1];
            MAS_rez[j+1]=tmp;
         }
     }
}
   
    for (int i=0; i<4*2; i++)
    printf ("%d", MAS_rez[i]);
}

Проблема: компилируется и выводится просто консоль. Просто черная консоль. И всё. Что делать?
Спасибо большое заранее)

Добавлено через 11 минут
Исправила до такого состояния, когда выводит массив. Но, к сожаления, массив по убыванию не отсортирован. Опять проблема. Подскажите, пожалуйста, что сделать?

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
#include <stdlib.h>
#include <stdio.h>
 
int main ()
{
//  ***************************Инициализация данных*********************
    int MAS_one[4]={1,3,5,7};
    int MAS_two[4]={8,6,4,3};
    int MAS_rez[4*2];
    int tmp, i,j;
 //****************************Объединение массивов*********************
    for (int i=0; i<4; i++) 
    { 
        MAS_rez[i]=MAS_one[i];
        MAS_rez[i+4]=MAS_two[i];
    }
    printf ("Massiv objedinen\n");
 //****************************Сортировка*******************************
for ( i=0; i<4-1; i++)
{
    //printf ("Sortirovka proshla\n");
     for ( j=0; j<4-1-i; i++)
     {
        // printf ("Sortirovka proshla\n");
         if (MAS_rez[j]<MAS_rez[j+1])
         {
            tmp=MAS_rez[j];
            MAS_rez[j]=MAS_rez[j+1];
            MAS_rez[j+1]=tmp;
         }
     }
}
   printf ("Sortirovka proshla\n");
    for (i=0; i<4*2; i++)
    printf ("%d", MAS_rez[i]);
}
Добавлено через 14 минут
Вот еще изменила код, получилось. Массив сортируется. Проблем нет. Хотя...Есть...Если в первом и втором массиве будет хотя бы одно одинаковое число, то задача решается неправильно. Как исправить, подскажите, пожалуйста.
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
#include <stdlib.h>
#include <stdio.h>
 
int main ()
{
//  ***************************Инициализация данных*********************
    int MAS_one[4]={1,3,5,7};
    int MAS_two[4]={8,6,4,2};
    int MAS_rez[4*2];
    int tmp, i,j;
 //****************************Объединение массивов*********************
    for (int i=0; i<4; i++) 
    { 
        MAS_rez[i]=MAS_one[i];
        MAS_rez[i+4]=MAS_two[i];
    }
    //printf ("Massiv \n");
 //****************************Сортировка*******************************
    for (i = 0; i<8; i++)
        for (j = 8 - 1; j>i; j--)
            if (MAS_rez[j - 1] <MAS_rez[j])//если текущий элемент меньше следующего, то
            {
                tmp = MAS_rez[j - 1]; //сохранить значение текущего элемента;
                MAS_rez[j - 1] = MAS_rez[j];//заменить текущий элемент следующим;
                MAS_rez[j] = tmp; //заменить следующий элемент текущим.
            }
 
    for (i = 0; i < 8; i++) 
        printf("%d ", MAS_rez[i]); //вывод упорядоченного массива
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.04.2016, 20:51
Ответы с готовыми решениями:

Сортировка по убыванию (методом пузырька)
Задание: добавить сортировку слов по убыванию (по методу пузырька). #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include...

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

Отсортировать двумерный массив методом пузырька по убыванию
помогите разобраться нужно отсортировать двумерный масив методом пузырька по убыванию #include &lt;conio.h&gt; #include &lt;stdio.h&gt;...

4
 Аватар для Соловьёв_Егор
60 / 60 / 53
Регистрация: 17.02.2013
Сообщений: 242
24.04.2016, 23:49
У меня ваш код работает, даже если в массивах есть одинаковые элементы. И если в одном массиве есть одинаковые элементы.
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
25.04.2016, 05:43
Не понимаю, зачем нужен "пузырек" при слиянии отсортированных массивов.
0
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 34
25.04.2016, 17:53  [ТС]
А каким методом сортировки лучше решить? Если не пузырьком?
И еще, скажите, пожалуйста, если не сложно, нужно в задаче решить такое: если два одинаковых числа в двух массивах, одно число удалить и сместить весь массив. Как это реализовать? Спасибо большое
0
 Аватар для Соловьёв_Егор
60 / 60 / 53
Регистрация: 17.02.2013
Сообщений: 242
25.04.2016, 18:01
Потому, что нужно не слепо слиять массивы в один, а слиять их так, что результирующий уже будет отсортирован, ведь слиять нужно два уже отсортированных массива. При удалении элемента сместить все элементы с позиции повторяющегося до последнего на одну позицию влево, то есть, элемент[индексПовторяющегосяЭлемента]=элемент[индексПовторяющегосяЭлемента+1]. Потом можно перевыделить память через функцию realloc() на 1 элемент меньше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.04.2016, 18:01
Помогаю со студенческими работами здесь

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

Сортировка методом Хаора и пузырька
Пропустил тему и понятия не имею как делать.

Сортировка массива методом пузырька
Задание: объявляем одномерный массив целого типа, размера не менее 15 этот массив необходимо заполнить с помощью интегратора случайных...

Сортировка стека методом пузырька
Привет всем. Народ помогите плиз! Есть программа &quot;сортировка стека&quot; а в конце есть блок где написана сортировка &quot;методом...

Почему не работает сортировка методом пузырька?
Нужно отсортировать зарплату по возрастанию в массиве yНе понимаю, почему не работает сортировка. Задание нужно выполнить с использованием...


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

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

Новые блоги и статьи
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
PowerShell и онлайн сервисы. Валюта (floatrates.com руб.)
iNNOKENTIY21 11.11.2025
PowerShell функция floatrates-rub Примеры вызова: # Указанная валюта 'EUR' floatrates-rub -Code 'EUR' # Список имеющихся кодов валют floatrates-rub -Available function floatrates-rub {
PowerShell и онлайн сервисы. Погода (RP5.ru)
iNNOKENTIY21 11.11.2025
PowerShell функция Get-WeatherRP5rss для получения погоды с сервиса RP5 Примеры вызова Get-WeatherRP5rss с указанием id 5484 — Москва (восток, Измайлово) и переносом строки:. . .
PowerShell и онлайн сервисы. Погода (wttr)
iNNOKENTIY21 11.11.2025
PowerShell Функция для получения погоды с сервиса wttr Примеры вызова: Погода в городе Омск с прогнозом на день, можно изменить прогноз на более дней, для этого надо поменять запрос:. . .
PowerShell и онлайн сервисы. Валюта (ЦБР)
iNNOKENTIY21 11.11.2025
# Получение курса валют function cbr (] $Valutes = @('USD', 'EUR', 'CNY')) { $url = 'https:/ / www. cbr-xml-daily. ru/ daily_json. js' $data = Invoke-RestMethod -Uri $url $esc = 27 . . .
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru