Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа со стеками https://www.cyberforum.ru/ cpp-beginners/ thread2615513.html
Доброй ночи, нужна ваша помощь, в принципе задание сделал, но не совсем так как указано в задании. Само задание : Разработать программу, которая: - осуществляет первоначальное введение символов и...
C++ Необходимо переделать задание с использованием массива структур, описывающих учебные заведения
Необходимо переделать данный код с использованием массива структур, описывающих учебные заведения. #include<iostream> #include<stdio.h> #include<string> #include <windows.h> void...
C++ Как реализовать классы OS Как реализовать классы OS? OS => Windows (Встроенные и десктопные) и Linux (Серверные и реалтайм) Помогите пожалуйста. https://www.cyberforum.ru/ cpp-beginners/ thread2615494.html C++ Пинг-понг потоками Ребят,всм привет! Пытаюсь вникнуть в многопоточное программирование.Хочу сделать простую программу,чтобы было 2 потока, которые пишут в консоль поочередно пинг - понг и так бесконечно и строго друг... https://www.cyberforum.ru/ cpp-beginners/ thread2615470.html
C++ Важно: создать класс-потомок, содержащий информацию о группе студентов
Нужно создать класс-потомок, содержащий информацию о группе студентов на основе родительского класса, в ней файлы заголовков и файл реализации менять не нужно. Если честно, странное задание дал...
C++ Как преобразовать код из матлаб в с++ как этот код в матлаб преобразовать в код С++? a=8; b=10; h=0.02; xm=0.4; x0=0.2;dx=0.004;tm=0.2;dt=0.002; au=2*h*(xm/pi)^2/x0/(xm-x0);b0=pi*x0/xm;b1=pi/xm;b2=b1*a;... https://www.cyberforum.ru/ cpp-beginners/ thread2615466.html
C++ Сколько в команде есть футболисты, которые не забили ни одного гола https://www.cyberforum.ru/ cpp-beginners/ thread2615455.html
задача c++. Даны сведения о количестве забитых голов каждого футболиста команды в каждом из матчей чемпионата. Проверить, сколько в команде есть футболисты, которые не забили ни одного гола.
Ряд проблем ifstream, ofstream C++
Суть проблемы в комментариях в коде int main() { string fnime("Shapes.txt"); ofstream fout; Shape shape; for (int i = 0; i < 5; ++i) {
C++ Сумма на дереве отрезков https://www.cyberforum.ru/ cpp-beginners/ thread2615443.html
https://codeforces.com/edu/course/2/lesson/4/1/practice/contest/273169/problem/A A. Дерево отрезков на сумму ограничение по времени на тест 1 секунда ограничение по памяти на тест 1024 мегабайта...
C++ Наследование классов.С++ Создать базовый класс РЕКЛАМА (задаются название рекламы, заказчик). Создать производный класс РЕКЛАМА НА ТЕЛЕВИДЕНИИ (задаются название телеканала, продолжительность 1 ролика, количество показов в... https://www.cyberforum.ru/ cpp-beginners/ thread2615434.html
Файл: Вывести данные про абитуриентов, проходной балл которых выше 4. C++
Имеется задача: Создать текстовый файл с произвольной информацией. Организовать просмотр содержимого файла. Организовать чтение и обработку данных из файла в соответствии с заданием. Сохранить...
C++ Задача с STL https://www.cyberforum.ru/ cpp-beginners/ thread2615391.html
Используя стандартную библиотеку шаблонов STL и классы list, vector, stack по работе со сложными структурами данных, выполнить следующую задачу, причем задачу нужно реализовать использовав три разных...
0 / 0 / 0
Регистрация: 16.10.2019
Сообщений: 80
0

Как работает время в программе, почему сортировка массива на 1000 элементов быстрее, чем сортировка массива на 8? - C++ - Ответ 14417730

11.04.2020, 02:44. Показов 1407. Ответов 1
Метки (Все метки)

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <iostream>
#include <chrono>
#include <cmath>
#include "List.h"
#include <iomanip>
#include <cstdlib>
 
//генератор рандомных массивов
template <class T>
void randomArrayGenerator(T* arr, const int len)
{
  std::srand(std::time(NULL));
  for (size_t i = 0; i < len; ++i)
  {
    arr[i] = std::rand() % 10;
  }
}
 
//нахождение максимального элемента 
template <class T>
T maxArrayElement(T* arr, const int len)
{
  T max = arr[0];
  for (size_t i = 1; i < len; ++i)
  {
    if (arr[i] > max)
    {
      max = arr[i];
    }
  }
  return max;
}
 
//таймер
class SimpleTimer
{
public:
  SimpleTimer()
  {
    start = std::chrono::high_resolution_clock::now();
  }
  ~SimpleTimer()
  {
    end = std::chrono::high_resolution_clock::now();
    std::chrono::duration<double> dur = end - start;
    std::cout << "Time passed (in seconds): " << dur.count() << '\n' << '\n';
  }
private:
  std::chrono::time_point<std::chrono::steady_clock> start, end;
};
 
//сортировка подсчетом
void countingSort(int* arr, int N, int max)
{
  SimpleTimer t;
  int *c = new int[max + 1];
  for (int i = 0; i <= max; ++i)
  {
    c[i] = 0;
  }
  for (int i = 0; i < N; ++i)
  {
    c[arr[i]]++;
  }
  int k = 0;
  for (int i = 0; i <= max; ++i)
  {
    for (int j = 0; j < c[i]; ++j)
    {
      arr[k] = i;
      k++;
    }
  }
  delete [] c;
  std::cout << "coundting sort:\t";
}
int main()
{
  std::srand(std::time(NULL));
  const int a1Size = 8, a2Size = 7, a3Size = 10, a4Size = std::rand()%10000;
  std::cout << std::fixed << std::endl;
  int array1[a1Size] = { 2, 5, 3, 0, 2, 3, 0, 3 };
  std::cout << "average case countingSort(array1[8] = { 2, 5, 3, 0, 2, 3, 0, 3 }):\n ";
  countingSort(array1, a1Size, 5);
 
  int* array4 = new int[a4Size];
  randomArrayGenerator(array4, a4Size);
  int max = maxArrayElement(array4, a4Size);
  std::cout << "Length of the array: " << a4Size << "\nThe max element of the array: " << max << '\n';
  //for (int i = 0; i < a4Size;++i)
  //{
  //  std::cout << array4[i] << " , ";
  //}
  std::cout << '\n' << "after sort: \n";
  countingSort(array4, a4Size, max);
  //for (int i = 0; i < a4Size; ++i)
  //{
  //  std::cout << array4[i] << " , ";
  //}
  delete[] array4;
  return 0;
  }


Вернуться к обсуждению:
Как работает время в программе, почему сортировка массива на 1000 элементов быстрее, чем сортировка массива на 8? C++
Миниатюры
Как работает время в программе, почему сортировка массива на  1000 элементов быстрее, чем сортировка массива на 8?  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2020, 02:44
Готовые ответы и решения:

Алгоритм быстрой сортировки для двумерного массива. Получается, чем меньше столбцов, тем быстрее сортировка
Написал процедуру для сортировки двумерного массива. Для того, чтобы можно было менять число строк...

Сортировка выбором с обменом неотсортированного массива из 1000 элементов
#include &lt;stdio.h&gt; #define MAS 1000 void main(void) { int S; int P; int j = 0; int i =...

Сортировка Шелла быстрее чем Быстрая сортировка
В универе задали задание построить графики относительно скорости сортировок и размеров массивов....

Почему не работает сортировка массива в обратном порядке?
Почему не работает сортировка чисел в обратном порядке ? public static void main(String args)...

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2020, 02:44
Помогаю со студенческими работами здесь

Одномерные массивы. Вставка, удаление элементов массива. Перестановка элементов массива. Сортировка массива методом пузырька
Помогите пожалуйста! Дан массив, состоящий из N букв латинского алфавита а) Заполнить массив...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru