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

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

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

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

30.12.2010, 07:39. Просмотров 1144. Ответов 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;        // и вставляем минимальный элемент на первую позицию
        }
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2010, 07:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Матрица, сортировка диагонали за алгоритмом вставки. (C++):

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

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

Сортировка индексов алгоритмом std::sort - C++
Есть два массива одинаковой размерности. В одном хоть что, во втором целые числа (индексы элементов первого массива). Нужно выполнить...

Отсортировать диагонали матрицы, параллельные главной, по убыванию элементов методом вставки - C++
Помогите исправить код, не могу доработать её. #include &lt;fstream&gt; #include &lt;iomanip&gt; #include &lt;iostream&gt; using namespace...

Сортировка методами вставки и выбора - C++
Сортировка метод вставки и выбора ! Помогите написать код программы для этих методов сортировки..... Буду очень благодарен) И много...

Сортировка стека методом вставки - C++
Дан стек реализованный статически. Неоходимо написать функцию вставки в него элемента с сохранением порядка элементов. То есть после...

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

Сортировка методом центрированной вставки - C++
Доброго времени суток. Может у кого-нибудь есть пример на С++ этой сортировки? Буду рад поглядеть) В интернете не нашел примеров)

Сортировка диагоналей матрицы методом вставки - C++
В общем нужно сортировать методом вставки диагонали, параллельные главной по убыванию Код сделан на половину, отлично сортирует...

Непонятно. Сортировка методом вставки + перегруженные функции. - C++
непонятно. помогите пожалуйста. #include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; void sort(int n, int a); ...

Сортировка массивов методом пузырька, вставки и быстрым способом - C++
Помогите сделать три программы которые создают двумерные массивы рандомом и сортируют методом пузырька, вставки и быстрым способом.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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