Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> метод парных перестановок 
:(
    Опции темы
CatGav
Дата 19.11.2013, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Всем привет. Дан массив. Отсортировать его методом парных перестановок.
Вот часть кода, а дальше как?

Код


// lab2.cpp: главный файл проекта.

#include "stdafx.h"
#include "stdafx.h"
#include "iostream"
#include "stdlib.h"
#include "iomanip"

using namespace std;

int main(array<System::String ^> ^args)

{
    setlocale(LC_CTYPE,"Russian");
    bool ok;
    int b=0;
    int k=1;
    int size;
    cout << "Введите размер массива ";
    cin >> size;
    int *a = new int[size];
    cout << "Введите элементы массива \n" ;
    for (int i = 0; i < size; i++)
    {
        cin >> a[i];
    }  

do    {
        ok=true;
        b=0;
        while (k < size)
        {
        if (a[k]<=a[k+1])
        {
            swap(a[k], a[k+1]);
            b++;
        }
        
        k++;
        }
    }
while (! ok);

        

    cout <<"Вывод массива \n" ;
    for (int i = 0; i < size; i++)
    {
        cout << a[i] << ' ';
    }
    
    
system ("pause");
return 0;
}



Это сообщение отредактировал(а) CatGav - 19.11.2013, 21:19
PM MAIL   Вверх
EgoBrain
Дата 20.11.2013, 03:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: 1
Всего: 2



CatGav, вроде как тебе нужна сортировка пузырьком.

1). Что это такое? Оно вообще компилируется?
Цитата

int main(array<System::String ^> ^args)


2). Зачем тебе переменные?  
Цитата

bool ok;
int b=0;

b никак не используется, а ok применяется бесмысленно.
Цикл
Код

do    
{
        ok=true;
        ...
}
while(!ok);

выполнится 1 раз.

3). Почему именно цикл с постусловием и с пред.? Имхо на первых парах понятнее for, но если такова постановка задачи, то
Код

#include <iostream>

using namespace std;

int main()
{
    setlocale(LC_CTYPE,"Russian");

    int b=0; //--Флаг события перестановки--
    int k=0; //--Счетчик массива (для индексации)--
    int size;

    cout << "Введите размер массива ";
    cin >> size;
    int *a = new int[size];

    cout << "Введите элементы массива \n" ;

    for (int i = 0; i < size; i++)
    {
        cin >> a[i];
    }  

    do
    {        
       b = 0;  //--На данной итерации перестановок небыло--
       k = 0;  //--Сбросить счетчик массива--

       while (k < size - 1)  //--Выполнять, пока номер элемента массива меньше последнего--
       {
            if (a[k] > a[k+1])  //--Если текущий элемент больше следующего, то поменять местами (сортировка по возрастанию)--
            {
                swap(a[k], a[k+1]);
                b = 1;  //--Перестановка была осуществлена--
            }        

            k++;
        }
    }
    while(b); //--Выполнять до тех пор, пока фиксируется факт перестановки--
        
        cout <<"Вывод массива \n" ;
        for (int i = 0; i < size; i++)
        {
             cout << a[i] << ' ';
        }
    
    cout<<endl;
    
    system ("pause");
    return 0;
}


Еще почитай про алгоритмы сортировки, перестановка (пузырёк) для обучения, показательная, в практике применяют другое..

Это сообщение отредактировал(а) EgoBrain - 20.11.2013, 03:58
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0883 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.