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

Дописать реализацию сортировки одномерного массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Где скачать c++ visual studio http://www.cyberforum.ru/cpp-beginners/thread950224.html
Здравствуйте, я учусь в университете недавно начали изучать c++. Преподаватель предложил скачать c++ visual studio, я пробовал гуглить но толкового решения пока что не нашёл. Некоторые продукты...
C++ используя отладчик, проанализировать значения переменных Три программы, приведенные ниже, исполнить в среде и, используя отладчик, проанализировать значения переменных. Программы и результаты работы программ распечатать на принтер. Уметь объяснить... http://www.cyberforum.ru/cpp-beginners/thread950221.html
Написать функцию, которая принимает указатель на переменную и присваивает ей модуль самой себя. C++
Задача 1. Написать функцию, которая принимает указатель на переменную и присваивает ей модуль самой себя.
C++ Инкремент переменной
в задании сказано, что пользователь вводит строку и программа выводит ее, но если пользователь вводит еще и цифру, то программа должна вывести строку столько раз, сколько раз была эта программа...
C++ Конструктор, принимающий в качестве аргумента ссылку на объект, всё портит http://www.cyberforum.ru/cpp-beginners/thread950194.html
Друзья! Вот корректный код: class foo { public: foo() { } foo(int x) {
C++ Класс Book Подскажите, как добавить в список книг ещё одну книгу? Я думаю функцию больше не надо писать, можно в case засунуть. Я немного запутался. #include <iostream.h> #include <stdio.h> #include... подробнее

Показать сообщение отдельно
__Александр__
7 / 10 / 0
Регистрация: 17.09.2012
Сообщений: 188
Записей в блоге: 2

Дописать реализацию сортировки одномерного массива - C++

08.09.2013, 15:13. Просмотров 244. Ответов 0
Метки (Все метки)

Есть код. Это реализация сортировки массива методом Шелла. Нужно дописать: ввод размера массива в консоли(например 100, 200 и т.д.), заполнение его рандомными целыми положительными числами (1, 2, 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
using namespace std;
 
int main()
{
     // Считываем размер массива,
     // который необходимо отсортировать
     int size;
     cout<< "Vvod razmera massiva"<<endl;
     cin >> size;
 
     // Динамически выделяем память под
     // хранение массива размера size
     int *a = new int[size];
     
     // Считываем массив
     for (int i = 0; i < size; i++)
     {
         cin >> a[i];
     }
     int step = size / 2;//инициализируем шаг.
     while (step > 0)//пока шаг не 0
     {
       for (int i = 0; i < (size - step); i++)
                 {
                     int j = i;
                     //будем идти начиная с i-го элемента
                     while (j >= 0 && a[j] > a[j + step])
                     //пока не пришли к началу массива
                     //и пока рассматриваемый элемент больше
                     //чем элемент находящийся на расстоянии шага
                     {
                         //меняем их местами
                         int temp = a[j];
                         a[j] = a[j + step];
                         a[j + step] = temp;
                         j--; 
                     }
                 }
                 step = step / 2;//уменьшаем шаг
             }    
     // Выводим отсортированный массив
     for (int i = 0; i < size; i++)
     {
         cout << a[i] << ' ';
     }
 
     return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru