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

Cортировка массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Условие переменной http://www.cyberforum.ru/cpp-beginners/thread394340.html
Здравствуйте мне нужно поставить условие на переменную что это число от 0 до 200х.. вводим не дробное число и не символ и не слово.помогите пожалуйста #include "stdafx.h" #include "iostream" #include <conio.h> using namespace std; int _tmain(int argc, _TCHAR* argv) { int n; cin>>n;
C++ Сложить элементы String Как сложить численные элементы string или конвертировать в int отдельные элементы массива? http://www.cyberforum.ru/cpp-beginners/thread394336.html
C++ Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке.
Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке. Например: Мама, материал, ломала. Комбинация "ма" встречаеться в предложении 4 раза
C++ перевести из Pascal в С++
Помогите пожалуйста перевести код программы с языка паскаль на С++ program Dostup; uses crt; type TRights=set of (RRead,RWrite,RGrant); const FullRights: TRights=; MaxObj=5; MaxUsers=3; var Users: array of string;
C++ Обработка одномерных массивов с использованием указателей (Visual studio) C++ http://www.cyberforum.ru/cpp-beginners/thread394326.html
Обработка одномерных массивов с использованием указателей Задание: составить программу заданной в лабораторной работе №5 обра-ботки массива целых чисел с использованием адресной ароиф-метики. В процессе обработки использовать перестановки элементов внутри массива, не создавая новых массивов. Заполнение исходного массива организовать с клавиатуры. Исходный и обработанный массив выводить на...
C++ a в степени n с помощью рекурсии Подскажите где ошибся? #include <iostream> using namespace std; int Square(int,int); int main(){ int p,q; cin>>p>>q; подробнее

Показать сообщение отдельно
alenka-46
16 / 16 / 2
Регистрация: 28.04.2011
Сообщений: 38
28.11.2011, 23:55     Cортировка массива
Есть у меня одна идея. Если массив упорядочен, например так
8 8 7 6 5 5 4 4 3 3 2 1
то можно менять местами элементы по четвёркам , например запомнить элементы a[i] и a[i+1] во вспомогательных переменных r1 и r2, потом записать на их месте элементы a[i+2] a[i+3], и потом записать переменные a[i] a[i+1] в конец, делать всё это в цикле for c шагом в 4. Сейчас попробую написать кусочек программы

Добавлено через 21 минуту
Хотя нет, немного не тот случай.
Если массив не упорядочен, например так 8 9 5 9 4 7 8 1, то можно
проверять массив с конца, и затем поменять местами предпредпоследний и предпоследний 7 и 8, потом предпоследний и последний 7 и 1, потом изменить переключатель с минус единицы на единицу и потом переставлять элементы снова, только уже минимальные. Сейчас попробую написать кусочек программы

Добавлено через 8 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
for(j=n-1; j>0; j-=2)
{
   if(flag==1)
     {
         if(a[j-1] > a[j-2] ) 
            меняем местами
         if(a[j] > a[j-1] ) 
            меняем местами
         if(a[j-1] > a[j-2] ) 
            меняем местами
     }
   else
     {
         if(a[j-1] < a[j-2] ) 
            меняем местами
         if(a[j] < a[j-1] ) 
            меняем местами
         if(a[j-1] < a[j-2] ) 
            меняем местами
     }
 
    flag*= (-1);
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru