Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/40: Рейтинг темы: голосов - 40, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 22.10.2014
Сообщений: 23
1

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

24.12.2014, 18:43. Показов 8204. Ответов 3
Метки нет (Все метки)

Здравствуйте,
Задали задачку, не могу додуматься уже неделю.
Вообщем, программа сортирует массив методом пузырька. Суть в том, чтобы можно было задать по убыванию или возрастанию она отсортирует. НО! Нужно сделать это минимальными усилиями, т.е. просто развернуть массив не подходит, вводить много новых операторов или добавлять циклы тоже.
Помогите, подскажите, если не код, то хотя бы направление мысли.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2014, 18:43
Ответы с готовыми решениями:

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

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

Сортировка массива по возрастанию или убыванию
Дан одномерный массив состоящий из N целых элементов. Осуществить хип сорт по возрастанию или...

Сортировка массива по возрастанию или убыванию
Задача. Дан массив чисел размерностью 10 элементов. Написать функцию, которая сортирует массив по...

__________________
3
Модератор
Эксперт С++
10492 / 8731 / 5275
Регистрация: 18.12.2011
Сообщений: 23,343
24.12.2014, 19:51 2
Знак > в условии поменять на <
И ВСЕ!
0
10 / 10 / 11
Регистрация: 09.12.2014
Сообщений: 89
24.12.2014, 20:01 3
Реально работающая прога.

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
#include <stdio.h>
main () {
     int A[10]={9,8,7,6,5,4,3,2,1,0};
     int index=0,change,sort=0;
if (sort==0){index=0;
printf ("START SORTED:\n"); 
printf ("-----------------\n");         
          while (sort==0) {   
             index=0;
             while (index<10){
                   if (A[index]>A[index+1]){change=A[index];A[index]=A[index+1];A[index+1]=change;}
                   printf ("%d",A[index]);
                   index++;
                   }
              printf ("\n");
             index=0; 
            while (index<10) {
           if (A[index]>A[index+1]) {sort=0;break;}
           else {sort=1;}
           index++;
           }  
printf ("-----------------\n");
printf ("nassive sorted\n"); 
     getchar();
     }
0
11 / 11 / 9
Регистрация: 24.12.2014
Сообщений: 39
24.12.2014, 22:57 4
Это сортировка по Возрастанию
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
#include "stdio.h"
#include "conio.h"
 
int main()
{
    int y[10], n, i, b, j;
    printf("Enter Element = ");
    scanf_s("%i", &n);
    for (i = 0; i<n; i++) //вывод массива
    {
        printf("Y[%i] = ",i);
        scanf_s("%i",&y[i]);
    }
    //упорядочивание элементов в массиве по возрастанию их значений
    for (j = 1; j<n; j++)
        for (i = 0; i<n - j; i++)
            if (y[i]>y[i + 1]) //если текущий элемент больше следующего, то
            {
                b = y[i]; //сохранить значение текущего элемента;
                y[i] = y[i + 1]; //заменить текущий элемент следующим;
                y[i + 1] = b; //заменить следующий элемент текущим.
            }
    for (i = 0; i < n; i++) printf("%i ", y[i]); //вывод упорядоченного массива
    _getch();
    return 0;
}
Добавлено через 6 минут
Это сортировка по Убыванию
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
#include "stdio.h"
#include "conio.h"
 
int main()
{
    int y[10], n, i, b, j;
    printf("Enter Element = ");
    scanf_s("%i", &n);
    for (i = 0; i<n; i++) //вывод массива
    {
        printf("Y[%i] = ",i);
        scanf_s("%i",&y[i]);
    }
    //упорядочивание элементов в массиве по убыванию их значений
    for (i = 0; i<n; i++)
        for (j = n - 1; j>i; j--)
            if (y[j - 1] < y[j])//если текущий элемент меньше следующего, то
            {
                y[n] = y[j - 1]; //сохранить значение текущего элемента;
                y[j - 1] = y[j];//заменить текущий элемент следующим;
                y[j] = y[n]; //заменить следующий элемент текущим.
            }
 
    for (i = 0; i < n; i++) printf("%i ", y[i]); //вывод упорядоченного массива
    _getch();
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2014, 22:57

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

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

Упорядочить матрицу по возрастанию(методом выбора) и убыванию(методом пузырька).
Дана квадратная матрица А(NxN). Упорядочить матрицу по возрастанию(методом выбора) и...

Отсортировать по возрастанию методом пузырька с ограничением первую половинку массива,а вторую по убыванию методом отбора
Отсортировать по возрастанию методом пузырька с ограничением первую половинку массива,а вторую по...

Сортировать методом «пузырька» до середины - по возрастанию, после – по убыванию
Сгенерировать одномерный массив из 10 целых чисел (и положительных и отрицательных).Выполнить...


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

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

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