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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Stormfire
0 / 0 / 0
Регистрация: 29.11.2010
Сообщений: 43
#1

Матрица, сортировка диагонали за алгоритмом вставки. - C++

30.12.2010, 07:39. Просмотров 1123. Ответов 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
void insert()       //функция сортировки элементов главной диагонали алгоритмом вставки
{
    int min = 0;        // индекс минимального элемента
    int temp;
    for (int i=1; i<size; i++)  // для всех элементов главной диагонали
    {
        min = i;// по умолчанию минимальный элемент - тот, с которого начинаем поиск
        for (int j=i; j<size; j++)      // начинаем поиск минимального элемента до конца
        {
            if (matrix[min][min] > matrix[j][j])        // если элемент меньше минимального
                min = j;    //то запоминаем его как минимальный
            compare++;
        }
        if (min > i)        // если необходима вставка (начальный элемент не минимальный)
        {
            temp = matrix[min][min];
            for (int j=i;j<min;j++)     // сдвигаем начало до минимального элемента на одну позицию
                matrix[j+1][j+1]=matrix[j][j];
            matrix[i][i] = temp;        // и вставляем минимальный элемент на первую позицию
        }
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2010, 07:39     Матрица, сортировка диагонали за алгоритмом вставки.
Посмотрите здесь:

Быстрая сортировка с внутренней досортировкой небольших частей методом вставки C++
C++ Непонятно. Сортировка методом вставки + перегруженные функции.
Сортировка индексов алгоритмом std::sort C++
C++ Сортировка стека методом вставки
C++ Сортировка методом центрированной вставки
Сортировка массивов методом пузырька, вставки и быстрым способом C++
Косячит сортировка диагонали матрица C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
30.12.2010, 07:41     Матрица, сортировка диагонали за алгоритмом вставки. #2
А что такое
Цитата Сообщение от Stormfire Посмотреть сообщение
за алгоритмом вставки
?
Stormfire
0 / 0 / 0
Регистрация: 29.11.2010
Сообщений: 43
30.12.2010, 07:46  [ТС]     Матрица, сортировка диагонали за алгоритмом вставки. #3
Цитата Сообщение от taras atavin Посмотреть сообщение
А что такое ?
Сортировка вставкой заключается в том, что сначала упорядочиваются два элемента массива. Затем делается вставка третьего элемента в соответствующее место по отношению к первым двум элементам. Четвертый элемент помещают в список из уже упорядоченных трех элементов. Этот процесс повторяется до тех пор, пока все элементы не будут упорядочены.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
30.12.2010, 08:18     Матрица, сортировка диагонали за алгоритмом вставки. #4
Объяснять мне, что такое сортировка вставкой, не надо. А вот что такое "за алгоритмом" не мешало бы и объяснить.
Stormfire
0 / 0 / 0
Регистрация: 29.11.2010
Сообщений: 43
30.12.2010, 08:22  [ТС]     Матрица, сортировка диагонали за алгоритмом вставки. #5
Цитата Сообщение от taras atavin Посмотреть сообщение
Объяснять мне, что такое сортировка вставкой, не надо. А вот что такое "за алгоритмом" не мешало бы и объяснить.
Не стоит быть столь враждебно настроеным, я всего лишь скопировал вопрос из задания которое у меня есть.
Это значит, что главную диагональ надо отсортировать вставкой.
И как я вижу, Вы прекрасно поняли о чем речь.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
30.12.2010, 08:30     Матрица, сортировка диагонали за алгоритмом вставки. #6
Ты телепат? Нет? Тогда не наезжай. Было бы понятно, я бы не спрашивал.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2010, 13:00     Матрица, сортировка диагонали за алгоритмом вставки.
Еще ссылки по теме:

C++ Отсортировать диагонали матрицы, параллельные главной, по убыванию элементов методом вставки
Матрица. Диагонали в прямоугольнике C++
Сортировка массива по возрастанию неоптимизированным алгоритмом вставки C++
Сортировка диагоналей матрицы методом вставки C++
C++ Сортировка методами вставки и выбора

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

Или воспользуйтесь поиском по форуму:
Stormfire
0 / 0 / 0
Регистрация: 29.11.2010
Сообщений: 43
30.12.2010, 13:00  [ТС]     Матрица, сортировка диагонали за алгоритмом вставки. #7
Нет, что Вы. Я не смею приходить на форум, просить помощи и еще наезжать на человека который потенциально может мне помочь.

Добавлено через 1 час 34 минуты
ап
Сегодня сдавать(

Добавлено через 2 часа 53 минуты
C++
1
2
3
4
5
 for (int j=i;j<min;j++)                                        
                         matrix[j+1][j+1]=matrix[j][j];
                        matrix[i][i] = temp;            
                }
        }
Вот этот кусок должен выглядеть как :
C++
1
2
3
4
5
6
    for (int j=min-1;j>=i;j--)  
                matrix[j+1][j+1]=matrix[j][j];
            matrix[i][i] = temp;        
        }
    }
    }
Yandex
Объявления
30.12.2010, 13:00     Матрица, сортировка диагонали за алгоритмом вставки.
Ответ Создать тему
Опции темы

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