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

"Пузырьковая" сортировка. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В одномерном массиве посчитать сумму элементов,находящихся в нечетных позициях! http://www.cyberforum.ru/cpp-beginners/thread167928.html
Добрый день,не могли бы пожалуйста помочь мне вот с этими двумя программами ? Очень буду признателен! Задача №13 Требования: 1.Подготовить текстовый файл с входными данными в редакторе 2.------------ 3.Разбить программу на функции ввода ввода,обработки и вывода 4.Входные данные прочесть из файла 5.Выполнить обработку соответствии с заданием
C++ Прочитать матрицу из файла и посчитать сумму элементов на главной диагонали Двухмерные массивы, прочитать их из файла. Посчитать сумму элементов по главной диагонале. http://www.cyberforum.ru/cpp-beginners/thread167923.html
C++ Последовательность n чисел.
Задана последовательность n чисел, равных 0,1,2. Расположить сначала все 1, потом 0, потом 2, не используя сравнения. Как такое реализовать?..
C++ Сумма модулей чисел выше главной диагонали
Всем добрый день. Вот необходимо решить такую задачку: Дана целочисленная квадратная матрица. Найти сумму модулей элементов, расположенных выше главной диагонали. В принципе, основную часть программы я написал, осталось только написать алгоритм расчета модулей чисел выше главной диагонали. Уже неделю бьюсь с этой задачкой. Помогите пожалуйста. P.S. Вот то что я смог наваять.
C++ Головоломка о голландском флаге http://www.cyberforum.ru/cpp-beginners/thread167905.html
Даны три числа - a, b, c. Они равны 0,1,2, но не упорядочены. Не используя if поменять их местами так, чтобы а=1, b=0, с=2. Может кто-нибудь сталкивался с подобным? А то я что-то даже не понимаю, что от меня хотят...
C++ Вопрос о строке Добрый день! Вводится строка и передаётся как параметр. При использовании следующего кода: while(str) { if (*str == '+') break; *(str++); i++; } подробнее

Показать сообщение отдельно
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
13.12.2010, 08:34     "Пузырьковая" сортировка.
Цитата Сообщение от fasked
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template <typename T>
void sort(T *range, size_t size)
{
    for(size_t i = 0; i < size; ++i) {
        for(size_t j = i + 1; j < size; ++j) {
            if(range[j] < range[j-1]) {
                T buf = range[j-1];
                range[j-1] = range[j];
                range[j] = buf;
            }
        }
    }
}
C++
1
        for(size_t j = i + 1; j < size; ++j) { // тут j выйдет за край массива на последнем i
а, ну да, выполняться-то он не будет

Код
[guest@localhost tmp]$ ./t
1 7 0 
1 0 7 
sh: PAUSE: command not found
[guest@localhost tmp]$
но массив действительно не сортируется
элементы справа перемещаются влево и после этого не проверяются

C
1
2
3
4
5
6
7
8
9
10
11
12
13
/* пузырьковая сортировка */
void sort(int arr[], size_t n)
{    
    size_t i, j;
    
    for (i = 0; i < n - 1; i++)
        for (j = i + 1; j < n; j++)
            if (arr[i] > arr[j]) {
                int tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template <typename T>
void sort(T *range, size_t size)
{
    for(size_t i = 0; i < size; ++i) {
        for(size_t j = i + 1; j < size; ++j) {
            if(range[j] < range[i]) {
                T buf = range[i];
                range[i] = range[j];
                range[j] = buf;
            }
        }
    }
}
Код
[guest@localhost tmp]$ ./t
1 7 0 
0 1 7 
sh: PAUSE: command not found
[guest@localhost tmp]$
 
Текущее время: 01:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru