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

Сортировка двумерного массива по возрастанию - 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 строк и 10 столбцов В документации подобного не нашел. С программистами пообщался - такого не встречали. Такое может быть вообще в природе? И соответствует ли это стандарту: ANSI C++ ?
C++ Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки) http://www.cyberforum.ru/cpp-beginners/thread22609.html
состоит из слов, разделенных одним или несколькими пробелами. Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). Если таких слов несколько, найти первое из них. :)
C++ Реализовать функцию, которая получает массив и возвращает количество простых чисел в нем. НАРОД ПОМОГИТЕ С ЗАДАЧЕЙ,ЕСТЬ ИСХОДНИК. РЕАЛИЗОВАТЬ ФУНКЦИЮ КОТОРАЯ ПОЛУЧАЕТ МАССИВ И ВОЗВРАЩАЕТ КОЛ-ВО ПРОСТЫХ ЧИСЕЛ В НЕМ #include<iostream> using namespace std; void input (int,int); void output (int,int); int prostoe (int,int ); int main() подробнее

Показать сообщение отдельно
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru