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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 74, средняя оценка - 4.89
Stas12
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 102
#1

Нужен пример шейкерной сортировки - C++

20.10.2011, 21:08. Просмотров 9847. Ответов 5
Метки нет (Все метки)

Написать программу шейкерной сортировки по возрастанию.Алгоритм представляет собой улучшеную пузырьковую сортировку , использующий "всплытие легкого" и "погружение тяжелого" элементов. Меняются одновременно и правая и левая границы массива.Никак не могу понять что делать..
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2011, 21:08     Нужен пример шейкерной сортировки
Посмотрите здесь:

Нужен пример турнирной сортировки - C++
Здравствуйте! Мне очень нужен пример турнирной сортировки , нигде не могу её найти . Читал про пирамидальную - это не турнирная случайно?...

Нужен пример обменной поразрядной сортировки - C++
Нужен пример Обменной поразрядной сортировки, ну или хотя бы алгоритм, а то вообще не понимаю как ее сделать. Помогите пожалуйста.

Устойчивость шейкерной сортировки - C++
Вчера в прикрепленной теме по сортировкам в пункте 2 наткнулся на следующее утверждение: Несмотря на то, что утверждение это довольно...

Упорядочить элементы заданного массива по убыванию посредством шейкерной сортировки - C++
Программа должна создавать динамический массив, с количеством элементов указанным пользователем, заполнить через консоль или...

Нужен пример с массивами - C++
Не могу догнать, зачем нужен массив конкретно.

Нужен пример интерфейса - C++
Помагите нужен пример интерфейса на С++. В заранее благодарен.

Нужен пример классов - C++
Привести пример классов с наследованием и доступом к компонентам их экземпляров через указатели на базовый и производный классы.

Нужен пример цикла while - C++
Помогите решить задачку или хотябы обьясните как делать а то сижу и думаю как это так реализовать

Нужен пример класса - C++
Привести пример класса для работы с комплексными числами и содержащего перегруженную операцию для вычитания комплексных чисел.

Нужен пример объявления структуры - C++
прошу помощи разобраться любая структура struct human { int age; int height; }; если я знаю какое именно количество будет...

C++ строки нужен хотябы пример - C++
С клавиатуры вводится текстовая строка. Написать программу которая подщитывает слова котрые имеют одинаковое количество гласных и согласных...

Нужен пример оператора switch - C++
Приведите пожалуйста простенький пример оператора switch с пояснением. просто чтоб понять как он работает) (в книге непонятный пример)


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
4223 / 2197 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.10.2011, 21:43     Нужен пример шейкерной сортировки #2
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 SheikerSort(int *a, const int n)
    {
       int l, r, i, k, buf;
       k = l = 0;
       r = n - 2;
       while(l <= r)
       {
          for(i = l; i <= r; i++)
             if (a[i] > a[i+1])
             {
                buf = a[i]; a[i] = a[i+1]; a[i+1] = buf;
                k = i;
             }
          r = k - 1;
          for(i = r; i >= l; i--)
             if (a[i] > a[i+1])
             {
                buf = a[i]; a[i] = a[i+1]; a[i+1] = buf;
                k = i;
             }
          l = k + 1;
       }
    }
Stas12
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 102
20.10.2011, 22:14  [ТС]     Нужен пример шейкерной сортировки #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <locale.h>
void SheikerSort(int *a, const int n);
int main ()
 
{   
void SheikerSort(int *a, const int n)
        {
           int l, r, i, k, buf;
           k = l = 0;
           r = n - 2;
           while(l <= r)
           {
              for(i = l; i <= r; i++)
                 if (a[i] > a[i+1])
                 {
                    buf = a[i]; a[i] = a[i+1]; a[i+1] = buf;
                    k = i;
                 }
              r = k - 1;
              for(i = r; i >= l; i--)
                 if (a[i] > a[i+1])
                 {
                    buf = a[i]; a[i] = a[i+1]; a[i+1] = buf;
                    k = i;
                 }
              l = k + 1;
           }
        }
                        
}
не работает что-то((
Thinker
Эксперт C++
4223 / 2197 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.10.2011, 22:16     Нужен пример шейкерной сортировки #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Так надо было правильно вызывать функцию:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<stdio.h>
void SheikerSort(int *a, const int n)
{
           int l, r, i, k, buf;
           k = l = 0;
           r = n - 2;
           while(l <= r)
           {
              for(i = l; i <= r; i++)
                 if (a[i] > a[i+1])
                 {
                    buf = a[i]; a[i] = a[i+1]; a[i+1] = buf;
                    k = i;
                 }
              r = k - 1;
              for(i = r; i >= l; i--)
                 if (a[i] > a[i+1])
                 {
                    buf = a[i]; a[i] = a[i+1]; a[i+1] = buf;
                    k = i;
                 }
              l = k + 1;
           }
        }
 
int main()
{
   int i, a[5] = {50, 40, 30, 20, 10};
   SheikerSort(a, 5);
   for(i = 0; i < 5; i++)
      printf("%d ", a[i]);
   getchar();
}
Stas12
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 102
20.10.2011, 22:18  [ТС]     Нужен пример шейкерной сортировки #5
спасибо)))
можно чуток комментариев?)))
libra
Сообщений: n/a
24.01.2013, 22:20     Нужен пример шейкерной сортировки #6
а как сделать Шейкерную сортировку по убыванию?
Yandex
Объявления
24.01.2013, 22:20     Нужен пример шейкерной сортировки
Ответ Создать тему
Опции темы

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