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

Сравнение алгоритмов сортировки массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Литература начинающим http://www.cyberforum.ru/cpp-beginners/thread243281.html
Люди, посоветуйте пожалуйста литературу начинающим(с нуля) программистам!:) (С++)
C++ Класс-вектор в С++ Здраствуйте. Передо мной стоит задача реализовать произведение и сложение векторов. Информации, той, что я нашел, оказалось мало. Программу с горем пополам я написал, тем более что в методиче был пример:). вот что у меня есть: #include <tchar.h> #include <conio.h> #include <iomanip.h> #include <iostream.h> #include <stdio.h> //---------------------------------------------------- http://www.cyberforum.ru/cpp-beginners/thread243246.html
C++ Определить, является ли заданное с клавиатуры шестизначное число четным, счастливым
Определить, является ли заданное с клавиатуры шестизначное число четным, счастливым (сумма первых трех цифр равна сумме последних трех цифр) или делится на 13. Как решить не пойму:( Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержание.
Таблица значений функции на С++ C++
Помогите начинающему программисту составить таблицу значений функции z=x+2y при х,изменяющегося на отрезке с шагом 0,2 и y,изменяющегося на отрезке {0,2} С шагом 0,4 Шаги выдаёт,а вот на функцию z = x+(2*y) не эрогирует,выдаёт ерунду какую-то,уже голову сломал((((( #include<iostream> using namespace std;
C++ Инициалиация константы http://www.cyberforum.ru/cpp-beginners/thread243150.html
Здравствуйте, вообщем на шестом ВС вроде была такая возможность, а 2010 ругается: error C2057: требуется константное выражение int c=42; const int b=c; int Temp;
C++ Объяснить фрагмент кода Добрый день, господа. Есть у меня такая вот задачка - надо объяснить структуру фрагмента. По сути, погадать по единственной строчке кода. classdb.init ( ( lhwlist("dbpath") + "/class").c_str(), classdbformat, cidbfilter); Собственно, что я могу сказать сам: Происходит инициализация класса, который является каким-то представлением базы данных. Конструктор тут не по умолчанию, больше похож... подробнее

Показать сообщение отдельно
Billy_boy
Сообщений: n/a
15.02.2011, 17:26     Сравнение алгоритмов сортировки массива
Всем доброго времени суток Получил задание в университете, выполнил его. Результатом не очень доволен, хотя явных ошибок не вижу...
Задача: сравнить алгоритмы сортировки умным пузырьком и "глупым".
Использую функцию timeGetTime для получения времени вычисления.
В теории так назваемый умный пузырек должен сортировать ощутимо быстрее. На практике же отличия в несколько микросекунд, причем разница не сильно меняется с увеличением массива. Иногда по результатам даже на больших массивах глупый пузырек сортирует быстрее Строю граффик в эксэле - линии практически совпадают...
Главный вопрос: В чем может крыться причина столь небольшого отличия скоорости?
Может конечно, это мои заморочки и все работает верно, но что- то мне так не кажется. Помогите кто чем может.
Код:
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
#include "stdafx.h"
#include <windows.h>
#include <mmsystem.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
#pragma comment(lib,"winmm.lib")
 
#define EXPSIZE 10
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL,"rus");
    srand (( unsigned ) time( NULL ));
    int const N = 1000;
    int Arr1[N];
    int Arr2[N];
    DWORD aver1 = 0;
    DWORD aver2 = 0;
    DWORD mSecArr1[10];
    DWORD mSecArr2[10];
    bool flag = false;
 
    int l = N; // бредок
 
 
        for(int ind = 0; ind < EXPSIZE; ind ++)
        {
            for (int i = 0; i < l; i++ ) // Заполнение и копирование массивов
            {
                Arr1[i] = rand();
                Arr2[i] = Arr1[i];
            } 
 
            mSecArr1[ind] = timeGetTime();
 
            for (int i = 0; i < l; i++ ) //Сортировка глупым пузырьком
            {
                for (int j= 0; j < l-1; j++ )
                {
                    if (Arr1[j] > Arr1[j+1] )
                    {
                        int tmp = Arr1[j];
                        Arr1[j] = Arr1[j+1];
                        Arr1[j+1] = tmp;
                    }
                }
            }
 
            mSecArr1[ind] = timeGetTime() - mSecArr1[ind];
            //cout << ind + 1 << ") Сортировка " << l << " элементов глупым способом = " << mSecArr1[ind] << endl; 
        
            mSecArr2[ind] = timeGetTime();
 
            do                                  //Сортировака умным пузырьком
            {
                flag = false;
                for( int j = 0; j < l - 1; j++ )
                {
                    if ( Arr2[j] > Arr2[j + 1] )
                    {
                        int tmp = Arr2[j];
                        Arr2[j] = Arr2[j+1];
                        Arr2[j+1] = tmp;
                        flag = true;
                    }
                }
            } while ( flag );
        
            mSecArr2[ind] = timeGetTime() - mSecArr2[ind];
            //cout << ind + 1 << ") Сортировка " << l << " элементов умным способом = " << mSecArr2[ind] << "\n" << endl;
        }
            
 
        for(int ind = 0; ind < EXPSIZE; ind ++)
        {
            aver1 += mSecArr1[ind];
            aver2 += mSecArr2[ind];
            mSecArr1[ind] = 0; 
            mSecArr2[ind] = 0;
        }
 
        aver1 /= EXPSIZE;
        aver2 /= EXPSIZE;   
 
        cout << aver1 <<" - Среднее время глупой сортировки на длине ввода " << l << endl;
        cout << aver2 <<" - Среднее время умной сортировки на длине ввода " << l << endl << endl;
        aver1 = 0;
        aver2 = 0;
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru