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

Different sorts - C++

Восстановить пароль Регистрация
 
Daemon025
 Аватар для Daemon025
380 / 329 / 67
Регистрация: 06.12.2010
Сообщений: 900
13.02.2011, 22:40     Different sorts #1
Доброго времени суток, решил проанализировать сортировки.
Возникло пару вопросов:
1) Как сделать, чтобы в cout писалось число напр.: 3.343434?
2) Как присвоить копию массива void'у?

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
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
 
void selectionSort(int x[], int n);
void insertionSort(int x[],int length);
void bubbleSort(int data[], int n);
 
int main()
{
    const int MAX_SIZE = 30000;
    int array[MAX_SIZE];
    time_t start,end;
    double dif;
 
    srand (time(NULL));
    cout << "Random generated array: \n";
 
    cout << "Selection sort: ";
    time (&start);
    selectionSort(array,MAX_SIZE);
    time (&end);
    dif = difftime (end,start);
    cout << dif << "\n";
 
    cout << "\nInsertion sort: ";
    time (&start);
    insertionSort(array,MAX_SIZE);
    time (&end);
    dif = difftime (end,start);
    cout << dif << "\n";
 
    cout << "\nBubble sort   : ";
    time (&start);
    bubbleSort(array,MAX_SIZE);
    time (&end);
    dif = difftime (end,start);
    cout << dif << "\n";
 
}
 
void selectionSort(int x[], int n) {
    for (int pass=0; pass<n-1; pass++) {
        int potentialSmallest = pass;  // assume this is smallest
 
        //--- Look over remaining elements to find smallest.
        for (int i=pass+1; i<n; i++) {
            if (x[i] < x[potentialSmallest]) {
                //--- Remember index for latter swap.
                potentialSmallest = i;
            }
        }
        //--- Swap smallest remaining element
        int temp = x[pass];
        x[pass] = x[potentialSmallest];
        x[potentialSmallest] = temp;
    }
   }
 
void insertionSort(int x[],int length)
{
  int key,i;
  for(int j=1;j<length;j++)
  {
     key=x[j];
     i=j-1;
     while(x[i]>key && i>=0)
     {
               x[i+1]=x[i];
         i--;
     }
     x[i+1]=key;
  }
}
 
void bubbleSort(int data[], int n)
{
    int SubArrayEnd = n -1;
 
    while (SubArrayEnd > 0)
    {
        int nextEnd = 0;
        for (int j = 0; j < (SubArrayEnd - 1); ++j)
        {
            if (data[j] > data[j+1])
            {
                data[j] = data[j+1];
                nextEnd = j;
            }
            else
            ++j;
        }
        SubArrayEnd = nextEnd;
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 08:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru