BenchmarkFor6.3.5
/
Test.cs
93 строки · 2.4 Кб
1using System.Globalization;
2using BenchmarkDotNet.Attributes;
3using BenchmarkDotNet.Running;
4using System.Text;
5
6BenchmarkRunner.Run<StringTest>();
7
8public class StringTest
9{
10string intro = "1@2.0@3@4@5@6@10@12@30@20@31";
11[Benchmark]
12public string MontirovkaBuild()
13{
14CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
15string[] chisla = intro.Split(new char[]{'@'});
16double[] truechisla = new double[chisla.Length];
17double max = Convert.ToDouble(chisla[0]);
18double min = Convert.ToDouble(chisla[0]);
19double max2 = Convert.ToDouble(chisla[1]);
20double min2 = Convert.ToDouble(chisla[1]);
21
22for (int i = 0; i < chisla.Length; i++)
23{
24truechisla[i] = Convert.ToDouble(chisla[i]);
25}
26
27if (min2 <= min)
28{
29double tmp = min2;
30min2 = min;
31min = tmp;
32}
33
34if (max2 >= max)
35{
36double tmp = max2;
37max2 = max;
38max = tmp;
39}
40
41for (int i = 2; i < truechisla.Length; i++)
42{
43if (min2 >= truechisla[i])
44{
45min2 = truechisla[i];
46}
47
48if (min2 <= min)
49{
50double tmp = min2;
51min2 = min;
52min = tmp;
53}
54
55if (max2 <= truechisla[i])
56{
57max2 = truechisla[i];
58}
59
60if (max2 >= max)
61{
62double tmp = max2;
63max2 = max;
64max = tmp;
65}
66}
67
68return $"{max2}\n{min2}";
69}
70[Benchmark]
71public string MichailBuild()
72{
73CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
74string[] splitNums = intro.Split('@');
75
76double[] arr = new double[splitNums.Length];
77
78for (int i = 0; i < splitNums.Length; i++)
79arr[i] = Convert.ToDouble(splitNums[i]);
80
81for (int i = 0; i < splitNums.Length - 1; i++)
82for (int j = 0; j < splitNums.Length - i - 1; j++)
83{
84if (arr[j] > arr[j + 1])
85{
86double temp = arr[j];
87arr[j] = arr[j + 1];
88arr[j + 1] = temp;
89}
90}
91return $"{arr[arr.Length - 2]}\n{arr[1]}";
92}
93}