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

Сортировка диагоналей двумерного массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Списки и деревья. http://www.cyberforum.ru/cpp-beginners/thread559548.html
Помогите пожалуйста сделать задачку на С++: Написать программу, которая вводит с клавиатуры список целых чисел, строит инверсную копию списка, затем вводит с клавиатуры сбалансированное дерево и считает кол-во листьев дерева. Просто очень плохо понимаю эту тему, а уже скоро сдавать((
C++ Массив: сформировать массив C[12] так, чтобы элементы располагались следующим образом: A(1) B(1) A(2) B(2) из массивов A и B сформировать массив C так, чтобы элементы массива располагались следующим образом: A(1) B(1) A(2) B(2) и т.д. http://www.cyberforum.ru/cpp-beginners/thread559536.html
C++ Работта с потоками
Само условие задачи такое: найти сумму элементов массива nxn используя потоки. вроде написал но выдаёт ошибку не могу понять в чём дело. Помогите пожалуйста. //--------------------------------------------------------------------------- #include <windows.h> #include <process.h> #include <stdio.h> #include <iostream.h> #pragma hdrstop
Вычислить порядковый номер дня в году с помощью структуры. C++
Нужно вычислить порядковый номер дня, опираясь на день и месяц, введенные пользователем. По-моему, делать это с помощью структур нет никакого смысла, но "так как мы учим структуры...". Никогда и в голову прийти не могло делать это с помощью структур. Можете подать идею?
C++ GetFileSizeEx - ошибка в последнем cout, помогите http://www.cyberforum.ru/cpp-beginners/thread559495.html
#include <windows.h> #include <iostream> #include<cstdlib> using namespace std; int main() { HANDLE hFile; LARGE_INTEGER liFileSize; // ðàçìåð ôàéëà
C++ printf > cout Помогите переделать printf("| %3.2f | %3.1f | %7.5f |\n",a,b,y); на cout. подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
28.04.2012, 07:32
Цитата Сообщение от alex932109 Посмотреть сообщение
Подскажите пожалуйста, зачем нужна переменная t и зачем она приравнивается к j
Представьте себе очередную сортируемую диагональ в виде одномерного массива.
Идем по массиву с помощью переменной j:
Цитата Сообщение от valeriikozlov Посмотреть сообщение
for(j=0; j<n && j+i<m; j++)
Для каждого элемента с индексом j делаем следующее:
- сначало считаем что элемент с индексом j самый минимальный из всех элементов от него и до конца строки. Для этого и приравниваем t к j. Затем перебираем элементы до конца строки:
Цитата Сообщение от valeriikozlov Посмотреть сообщение
for(y=j+1; y<n && y+i<m; y++)
и если вдруг встречаем меньший элемент, на который показывает y , то t делаем равным y:
Цитата Сообщение от valeriikozlov Посмотреть сообщение
if(a[t][i+t]>a[y][i+y])
t=y;
в конце прохода t будет показывать на самый минимальный элемент от j до конца строки (включительно). Поэтому просто меняем местами элемент на который указывает j с элементом на который указывает t:
Цитата Сообщение от valeriikozlov Посмотреть сообщение
t1=a[j][j+i]; a[j][j+i]=a[t][i+t]; a[t][i+t]=t1;
В общем здесь реализована сортировка выбором.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru