Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2013, 22:01   #1
Даночка
Новичок
Джуниор
 
Регистрация: 22.04.2013
Сообщений: 1
Радость (С++ Builder)Шейкерная сортировка

Сгенерировать числовой массив случайным образом из 100 элементов. Вывести. Описать функцию шейкерной сортировки, предусмотрев кол-во обменов и сравнений.
Даночка вне форума Ответить с цитированием
Старый 23.04.2013, 16:53   #2
cleac
Пользователь
 
Аватар для cleac
 
Регистрация: 19.04.2013
Сообщений: 27
По умолчанию

Код:
#include "time.h"

void ShakerSort()
{
    int Left, Right; //границы сортировки
 
    int Arr[100];//массив
    srand(time(0));//генератор псевдослучайных чисел (иначе при каждом запуске будет одно и то же)
   
    for(int i = 0; i<100; i++)Arr[i]=rand();//генерируем числа

    Left = 0;
    Right = 99;
    int sw = 0;  //перестановки
    int srav = 0; //сравнения
 
 
    do
    {
        //Сдвигаем к началу массива "легкие элементы"
        for (int i = Right; i != Left; i--)
        {
            srav++;
            if (Arr[i - 1]>Arr[i])
            {
                int temp;
                temp =  Arr[i-1];
                Arr[i-1] = Arr[i];
                Arr[i] = temp;
                sw++;

            }
        }
 
        Left = Left + 1;
 
        //Сдвигаем к концу массива "тяжелые элементы"
        for (int i = Left; i <= Right; i++)
        {
            srav++;
            if (Arr[i - 1] > Arr[i])
            {
                int temp;
                temp =  Arr[i-1];
                Arr[i-1] = Arr[i];
                Arr[i] = temp;
                sw++;
            }
        }
 
        Right = Right - 1;
    }
    while (Left <= Right);
}
All rights reserved©.

Последний раз редактировалось cleac; 23.04.2013 в 17:35. Причина: подправил
cleac вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шейкерная сортировка netfilter Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 25.11.2012 09:57
шейкерная сортировка C++ zaki Помощь студентам 2 27.02.2012 17:46
Шейкерная сортировка nelly.nelly Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 06.06.2011 15:03
Шейкерная сортировка Paladast Помощь студентам 2 13.01.2010 16:23
Шейкерная сортировка на С Tat-ka Помощь студентам 0 02.12.2009 21:17