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

Сортировка двумерного массива по возрастанию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ dynamic_cast http://www.cyberforum.ru/cpp-beginners/thread22683.html
#include <iostream> class B { public: virtual void foo(){std::cout<<"B";} private: int a; }; class D : public B { public: void foo(){std::cout<<"D"<<std::endl;}
C++ Функция, которая при вводе натурального числа выводит количество цифр в нем и их сумму Написать и протестировать функцию которая при вводе натурального числа выводит количество цифр в нем и их сумму. Пример : натуральное число 8564 количество цифр 4 сумма цифр 23 http://www.cyberforum.ru/cpp-beginners/thread22674.html
Функция atoi, без использования библиотеки string C++
функции atoi, без использования библиотеки string
C++ Вопрос по массивав, "институтский" вопрос.
Готовлюсь к летней сессии по программированию. С++ Есть такая вот задачка (привожу как есть) Какие операторы надо записать до оператора int(*a) = new int чтобы был открыт массив, содержащий 5...
C++ Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки) http://www.cyberforum.ru/cpp-beginners/thread22609.html
состоит из слов, разделенных одним или несколькими пробелами. Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). Если таких слов несколько, найти...
C++ Реализовать функцию, которая получает массив и возвращает количество простых чисел в нем. НАРОД ПОМОГИТЕ С ЗАДАЧЕЙ,ЕСТЬ ИСХОДНИК. РЕАЛИЗОВАТЬ ФУНКЦИЮ КОТОРАЯ ПОЛУЧАЕТ МАССИВ И ВОЗВРАЩАЕТ КОЛ-ВО ПРОСТЫХ ЧИСЕЛ В НЕМ #include<iostream> using namespace std; void input (int,int); void... подробнее

Показать сообщение отдельно
Kuzia domovenok
2059 / 1904 / 174
Регистрация: 25.03.2012
Сообщений: 6,555
Записей в блоге: 1
07.03.2013, 01:50
Цитата Сообщение от Olgert Посмотреть сообщение
Это больше подходит заданию Lyric
Это излишне много циклов.
Цитата Сообщение от KoMaTo3Huk Посмотреть сообщение
Как вариант, если нужно, чтоб не выводило в отдельном цикле
Это много циклов + вырвиглазное оформление.

А ответ прост.
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
const int size=10;
int a[size][size];
 
void sort(){
    int inext, jnext;
    int i, j;
    int temp;
    bool sorted=false;
    while(!sorted){
        sorted=true;
        i=0; j=0;
        for(inext=0; inext<size; inext++)
            for(jnext=(inext?0:1); jnext<size; jnext++)
            {
                if(a[i][j]>a[inext][jnext]){
                    temp=a[i][j];
                    a[i][j]=a[inext][jnext];
                    a[inext][jnext]=temp;
                    sorted=false;
                }
                i=inext;
                j=jnext;
            }
    
    }
}
Добавлено через 8 минут
//сортировка пузырьком по аналогии с сортировкой одномерного массива
//перебираем элементы по очереди, начиная с a[0][1]
//в двойном вложенном цикле, словно выводим 2д массив
//и сравниваем в цикле элемент с предыдущим, а не со следующим
i=inext, j=jnext; //а в роли индекса предыдущего элемента выступает значение,
//запомненное в конце предыдущей итерации цикла! в этом вся моя фишка.
//Благодаря этому не нужно лишних условий на границах массива
//и мучительных попыток выбора то ли a[i+1][j] то ли a[0][j+1] на роль следующего элемента

Добавлено через 2 минуты
Сделано на основе оптимизированного варианта сортировки пузырьком одномерных массивов
http://neerc.ifmo.ru/wiki/index.php?...86.D0.B8.D1.8F
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.