Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 29.11.2010
Сообщений: 43
1

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

30.12.2010, 07:39. Показов 2764. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, написал программу для создания двумерной матрицы и последующей сортировке матрицы за методом вставки и методом обмена.
Програма получилась, работает, но не правильно строит матрицу за методом вставки, за методом обмена - правильно
Оставлю кусочек кода, отвечающий за алгоритм вставку.
Прошу исправить помочь найти ошибку и исправить её(

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;        // и вставляем минимальный элемент на первую позицию
        }
    }
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2010, 07:39
Ответы с готовыми решениями:

Сортировка массива по возрастанию неоптимизированным алгоритмом вставки
Я решаю задачу. Прошу помочь. Что не так в моём коде ? Условие задачи: Дается массив целых...

Косячит сортировка диагонали матрица
матрицы:) Задача такая: &quot;Переставить столбцы матрицы так, чтобы элементы, расположенные на...

Сортировка массива по возрастанию методом "вставки с бинарным поиском места вставки"
Задан массив вещественных чисел x0,x1,...,xn-1. Произвести сортировку массива по возрастанию...

Дана квадратная матрица. Элементы главной диагонали поменять местами с элементами побочной диагонали
Дана квадратная матрица. Элементы главной диагонали поменять местами с элементами побочной...

6
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.12.2010, 07:41 2
А что такое
Цитата Сообщение от Stormfire Посмотреть сообщение
за алгоритмом вставки
?
0
0 / 0 / 0
Регистрация: 29.11.2010
Сообщений: 43
30.12.2010, 07:46  [ТС] 3
Цитата Сообщение от taras atavin Посмотреть сообщение
А что такое ?
Сортировка вставкой заключается в том, что сначала упорядочиваются два элемента массива. Затем делается вставка третьего элемента в соответствующее место по отношению к первым двум элементам. Четвертый элемент помещают в список из уже упорядоченных трех элементов. Этот процесс повторяется до тех пор, пока все элементы не будут упорядочены.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.12.2010, 08:18 4
Объяснять мне, что такое сортировка вставкой, не надо. А вот что такое "за алгоритмом" не мешало бы и объяснить.
0
0 / 0 / 0
Регистрация: 29.11.2010
Сообщений: 43
30.12.2010, 08:22  [ТС] 5
Цитата Сообщение от taras atavin Посмотреть сообщение
Объяснять мне, что такое сортировка вставкой, не надо. А вот что такое "за алгоритмом" не мешало бы и объяснить.
Не стоит быть столь враждебно настроеным, я всего лишь скопировал вопрос из задания которое у меня есть.
Это значит, что главную диагональ надо отсортировать вставкой.
И как я вижу, Вы прекрасно поняли о чем речь.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.12.2010, 08:30 6
Ты телепат? Нет? Тогда не наезжай. Было бы понятно, я бы не спрашивал.
0
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;        
        }
    }
    }
0
30.12.2010, 13:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.12.2010, 13:00
Помогаю со студенческими работами здесь

Дана квадратная матрица. Поменять местами элементы главной диагонали с элементами побочной диагонали
Пожалуйста, помогите! Дана квадратная матрица. Поменять местами элементы главной диагонали с...

Сортировка индексов алгоритмом std::sort
Есть два массива одинаковой размерности. В одном хоть что, во втором целые числа (индексы элементов...

Дана квадратная матрица порядка M. Вывести минимальные из элементов каждой ее диагонали, параллельной побочной диагонали
Условие задачи: Дана квадратная матрица порядка M. Вывести минимальные из элементов каждой ее...

Дана квадратная матрица порядка M. Вывести минимальные из элементов каждой ее диагонали, параллельной главной диагонали
Есть программа, но она немного не соответствует условию. Здесь условие про параллельную побочную...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru