5.1.1. Текст программы
#include <stdlib.h>
#include <stdio.h>
#include "Sampler.h"
const int Size = 1000;
void sort(float* a, int n)
{
int done;
int jump=n,i,j;
float hold;
while (jump>1)
{
jump/=2;
do
{
done=1;
for (j=0; j<n-jump; ++j)
{
i=j+jump;
if (a[j]>a[i])
{
hold = a[j];
a[j]=a[i];
a[i]=hold;
done=0;
}
}
}while(!done);
}
}
int main()
{
SAMPLE;
float list[Size];
srand(0);
for(int i=0; i<Size; ++i)
list[i]=rand();
sort(list, Size);
SAMPLE;
return 0;
}
5.1.2. Результат профилирования
----------------------------------------------------------------------
Исх.Поз. Прием.Поз. Общее время(мкс) Кол-во прох. Среднее время(мкс)
----------------------------------------------------------------------
1 : 35 1 : 41 807.93 1 807.93
----------------------------------------------------------------------
5.1.3. Текст программы
#include <stdlib.h>
#include <stdio.h>
#include "Sampler.h"
const int Size = 1000;
void sort(float* a, int n)
{
SAMPLE;
int done;
int jump=n,i,j;
float hold;
SAMPLE;
while (jump>1)
{
jump/=2;
SAMPLE;
do
{
done=1;
SAMPLE;
for (j=0; j<n-jump; ++j)
{
i=j+jump;
SAMPLE;
if (a[j]>a[i])
{
SAMPLE;
hold = a[j];
a[j]=a[i];
a[i]=hold;
SAMPLE;
done=0;
SAMPLE;
}
}
}while(!done);
}
SAMPLE;
}
int main()
{
SAMPLE;
float list[Size];
srand(0);
for(int i=0; i<Size; ++i)
list[i]=rand();
SAMPLE;
sort(list, Size);
SAMPLE;
return 0;
}
5.1.4. Результат профилирования
----------------------------------------------------------------------
Исх.Поз. Прием.Поз. Общее время(мкс) Кол-во прох. Среднее время(мкс)
----------------------------------------------------------------------
1 : 9 1 : 13 0.00 1 0.00
----------------------------------------------------------------------
1 : 13 1 : 17 0.84 1 0.84
----------------------------------------------------------------------
1 : 17 1 : 21 1.68 9 0.19
----------------------------------------------------------------------
1 : 21 1 : 25 42.74 57 0.75
----------------------------------------------------------------------
1 : 25 1 : 25 865446.12 46616 18.57
1 : 25 1 : 28 93530.73 7043 13.28
1 : 25 1 : 17 7.54 8 0.94
1 : 25 1 : 21 17.60 40 0.44
1 : 25 1 : 39 0.00 1 0.00
----------------------------------------------------------------------
1 : 28 1 : 32 119767.34 7043 17.01
----------------------------------------------------------------------
1 : 32 1 : 34 172272.41 7043 24.46
----------------------------------------------------------------------
1 : 34 1 : 25 336344.89 7035 47.81
1 : 34 1 : 21 1.68 8 0.21
----------------------------------------------------------------------
1 : 39 1 : 51 0.00 1 0.00
----------------------------------------------------------------------
1 : 44 1 : 49 34.36 1 34.36
----------------------------------------------------------------------
1 : 49 1 : 9 0.00 1 0.00
----------------------------------------------------------------------
5.2. Программа на языке Pascal