оформление графиков, по полученным данным

This commit is contained in:
GordStep 2026-05-14 01:16:37 +03:00
parent 62795e88ba
commit 6554e2ada1
9 changed files with 1079 additions and 73 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -164,6 +164,12 @@ func (root *BSTree) insert(data ds.MyData) *BSTree {
return root
}
func (bst *BinSearchTree) InsertAll(data []ds.MyData) {
for _, el := range data {
bst.Insert(el)
}
}
// Delete удаляет узел по имени.
// Возвращает нового потомка для родительского узла.

View File

@ -90,6 +90,12 @@ func (h *HashTable) Insert(new ds.MyData) {
h.size++
}
func (ht *HashTable) InsertAll(data []ds.MyData) {
for _, el := range data {
ht.Insert(el)
}
}
func (h *HashTable) Search(name string) (phone string, status bool) {
ind := h.GetIndex(name)

View File

@ -80,6 +80,12 @@ func (ll *LinkedList) Insert(data ds.MyData) {
current.next = newNode
}
func (ll *LinkedList) InsertAll(data []ds.MyData) {
for _, el := range data {
ll.Insert(el)
}
}
func (ll *LinkedList) Search(targetName string) (string, bool) {
current := ll.head

View File

@ -1,37 +1,199 @@
Structure,Mode,Operation,Time
Связный список,Случайный,Вставка,0.047607
Связный список,Случайный,Вставка,0.050350
Связный список,Случайный,Вставка,0.049572
Связный список,Случайный,Вставка,0.049258
Связный список,Случайный,Вставка,0.048659
Связный список,Случайный,Вставка,0.049089
Связный список,Отсортированный,Вставка,0.047619
Связный список,Отсортированный,Вставка,0.047478
Связный список,Отсортированный,Вставка,0.048357
Связный список,Отсортированный,Вставка,0.048174
Связный список,Отсортированный,Вставка,0.048270
Связный список,Отсортированный,Вставка,0.047980
Хеш таблица,Случайный,Вставка,0.002014
Хеш таблица,Случайный,Вставка,0.002013
Хеш таблица,Случайный,Вставка,0.002008
Хеш таблица,Случайный,Вставка,0.001003
Хеш таблица,Случайный,Вставка,0.002505
Хеш таблица,Случайный,Вставка,0.001908
Хеш таблица,Отсортированный,Вставка,0.001514
Хеш таблица,Отсортированный,Вставка,0.001504
Хеш таблица,Отсортированный,Вставка,0.002012
Хеш таблица,Отсортированный,Вставка,0.001003
Хеш таблица,Отсортированный,Вставка,0.002506
Хеш таблица,Отсортированный,Вставка,0.001708
Бинарное дерево поиска,Случайный,Вставка,0.318901
Бинарное дерево поиска,Случайный,Вставка,0.320504
Бинарное дерево поиска,Случайный,Вставка,0.316685
Бинарное дерево поиска,Случайный,Вставка,0.315862
Бинарное дерево поиска,Случайный,Вставка,0.320947
Бинарное дерево поиска,Случайный,Вставка,0.318580
Бинарное дерево поиска,Отсортированный,Вставка,0.313718
Бинарное дерево поиска,Отсортированный,Вставка,0.318131
Бинарное дерево поиска,Отсортированный,Вставка,0.322564
Бинарное дерево поиска,Отсортированный,Вставка,0.315526
Бинарное дерево поиска,Отсортированный,Вставка,0.314289
Бинарное дерево поиска,Отсортированный,Вставка,0.316846
Связный список,Случайный,Вставка,0.047621
Связный список,Случайный,Поиск,0.003505
Связный список,Случайный,Удаление,0.005502
Связный список,Случайный,Вставка,0.048707
Связный список,Случайный,Поиск,0.003505
Связный список,Случайный,Удаление,0.006007
Связный список,Случайный,Вставка,0.048086
Связный список,Случайный,Поиск,0.003546
Связный список,Случайный,Удаление,0.006606
Связный список,Случайный,Вставка,0.049133
Связный список,Случайный,Поиск,0.003018
Связный список,Случайный,Удаление,0.006084
Связный список,Случайный,Вставка,0.048328
Связный список,Случайный,Поиск,0.003524
Связный список,Случайный,Удаление,0.007066
Связный список,Случайный,Вставка,0.047057
Связный список,Случайный,Поиск,0.003518
Связный список,Случайный,Удаление,0.006054
Связный список,Случайный,Вставка,0.047979
Связный список,Случайный,Поиск,0.003604
Связный список,Случайный,Удаление,0.006039
Связный список,Случайный,Вставка,0.047694
Связный список,Случайный,Поиск,0.004520
Связный список,Случайный,Удаление,0.005522
Связный список,Случайный,Вставка,0.047864
Связный список,Случайный,Поиск,0.003514
Связный список,Случайный,Удаление,0.006814
Связный список,Случайный,Вставка,0.048523
Связный список,Случайный,Поиск,0.002611
Связный список,Случайный,Удаление,0.006122
Связный список,Случайный,Вставка (среднее),0.048099
Связный список,Случайный,Поиск (среднее),0.003486
Связный список,Случайный,Удаление (среднее),0.006181
Связный список,Отсортированный,Вставка,0.046193
Связный список,Отсортированный,Поиск,0.004520
Связный список,Отсортированный,Удаление,0.005769
Связный список,Отсортированный,Вставка,0.048112
Связный список,Отсортированный,Поиск,0.003001
Связный список,Отсортированный,Удаление,0.007026
Связный список,Отсортированный,Вставка,0.047699
Связный список,Отсортированный,Поиск,0.003503
Связный список,Отсортированный,Удаление,0.006515
Связный список,Отсортированный,Вставка,0.047867
Связный список,Отсортированный,Поиск,0.003509
Связный список,Отсортированный,Удаление,0.006001
Связный список,Отсортированный,Вставка,0.047622
Связный список,Отсортированный,Поиск,0.003001
Связный список,Отсортированный,Удаление,0.006008
Связный список,Отсортированный,Вставка,0.047737
Связный список,Отсортированный,Поиск,0.003546
Связный список,Отсортированный,Удаление,0.005514
Связный список,Отсортированный,Вставка,0.048361
Связный список,Отсортированный,Поиск,0.003012
Связный список,Отсортированный,Удаление,0.005328
Связный список,Отсортированный,Вставка,0.049622
Связный список,Отсортированный,Поиск,0.003510
Связный список,Отсортированный,Удаление,0.005522
Связный список,Отсортированный,Вставка,0.048137
Связный список,Отсортированный,Поиск,0.003518
Связный список,Отсортированный,Удаление,0.005531
Связный список,Отсортированный,Вставка,0.048927
Связный список,Отсортированный,Поиск,0.004004
Связный список,Отсортированный,Удаление,0.005470
Связный список,Отсортированный,Вставка (среднее),0.048028
Связный список,Отсортированный,Поиск (среднее),0.003512
Связный список,Отсортированный,Удаление (среднее),0.005869
Хеш таблица,Случайный,Вставка,0.001504
Хеш таблица,Случайный,Поиск,0.000000
Хеш таблица,Случайный,Удаление,0.000000
Хеш таблица,Случайный,Вставка,0.002047
Хеш таблица,Случайный,Поиск,0.000000
Хеш таблица,Случайный,Удаление,0.000000
Хеш таблица,Случайный,Вставка,0.002010
Хеш таблица,Случайный,Поиск,0.000000
Хеш таблица,Случайный,Удаление,0.000000
Хеш таблица,Случайный,Вставка,0.002005
Хеш таблица,Случайный,Поиск,0.000000
Хеш таблица,Случайный,Удаление,0.000000
Хеш таблица,Случайный,Вставка,0.002513
Хеш таблица,Случайный,Поиск,0.000000
Хеш таблица,Случайный,Удаление,0.000000
Хеш таблица,Случайный,Вставка,0.001505
Хеш таблица,Случайный,Поиск,0.000000
Хеш таблица,Случайный,Удаление,0.000000
Хеш таблица,Случайный,Вставка,0.002529
Хеш таблица,Случайный,Поиск,0.000000
Хеш таблица,Случайный,Удаление,0.000000
Хеш таблица,Случайный,Вставка,0.001504
Хеш таблица,Случайный,Поиск,0.000000
Хеш таблица,Случайный,Удаление,0.000000
Хеш таблица,Случайный,Вставка,0.002023
Хеш таблица,Случайный,Поиск,0.000000
Хеш таблица,Случайный,Удаление,0.000000
Хеш таблица,Случайный,Вставка,0.002429
Хеш таблица,Случайный,Поиск,0.000000
Хеш таблица,Случайный,Удаление,0.000000
Хеш таблица,Случайный,Вставка (среднее),0.002007
Хеш таблица,Случайный,Поиск (среднее),0.000000
Хеш таблица,Случайный,Удаление (среднее),0.000000
Хеш таблица,Отсортированный,Вставка,0.002005
Хеш таблица,Отсортированный,Поиск,0.000000
Хеш таблица,Отсортированный,Удаление,0.000000
Хеш таблица,Отсортированный,Вставка,0.001282
Хеш таблица,Отсортированный,Поиск,0.000000
Хеш таблица,Отсортированный,Удаление,0.001504
Хеш таблица,Отсортированный,Вставка,0.001015
Хеш таблица,Отсортированный,Поиск,0.000000
Хеш таблица,Отсортированный,Удаление,0.000000
Хеш таблица,Отсортированный,Вставка,0.002016
Хеш таблица,Отсортированный,Поиск,0.000000
Хеш таблица,Отсортированный,Удаление,0.000000
Хеш таблица,Отсортированный,Вставка,0.001505
Хеш таблица,Отсортированный,Поиск,0.000000
Хеш таблица,Отсортированный,Удаление,0.000000
Хеш таблица,Отсортированный,Вставка,0.002016
Хеш таблица,Отсортированный,Поиск,0.000502
Хеш таблица,Отсортированный,Удаление,0.000000
Хеш таблица,Отсортированный,Вставка,0.002009
Хеш таблица,Отсортированный,Поиск,0.000000
Хеш таблица,Отсортированный,Удаление,0.000000
Хеш таблица,Отсортированный,Вставка,0.001068
Хеш таблица,Отсортированный,Поиск,0.000000
Хеш таблица,Отсортированный,Удаление,0.000000
Хеш таблица,Отсортированный,Вставка,0.002516
Хеш таблица,Отсортированный,Поиск,0.000000
Хеш таблица,Отсортированный,Удаление,0.000000
Хеш таблица,Отсортированный,Вставка,0.002505
Хеш таблица,Отсортированный,Поиск,0.000000
Хеш таблица,Отсортированный,Удаление,0.000000
Хеш таблица,Отсортированный,Вставка (среднее),0.001794
Хеш таблица,Отсортированный,Поиск (среднее),0.000050
Хеш таблица,Отсортированный,Удаление (среднее),0.000150
Бинарное дерево поиска,Случайный,Вставка,0.304277
Бинарное дерево поиска,Случайный,Поиск,0.007550
Бинарное дерево поиска,Случайный,Удаление,0.013564
Бинарное дерево поиска,Случайный,Вставка,0.297918
Бинарное дерево поиска,Случайный,Поиск,0.007167
Бинарное дерево поиска,Случайный,Удаление,0.014539
Бинарное дерево поиска,Случайный,Вставка,0.300777
Бинарное дерево поиска,Случайный,Поиск,0.008009
Бинарное дерево поиска,Случайный,Удаление,0.015144
Бинарное дерево поиска,Случайный,Вставка,0.307342
Бинарное дерево поиска,Случайный,Поиск,0.008307
Бинарное дерево поиска,Случайный,Удаление,0.013577
Бинарное дерево поиска,Случайный,Вставка,0.301149
Бинарное дерево поиска,Случайный,Поиск,0.007792
Бинарное дерево поиска,Случайный,Удаление,0.012897
Бинарное дерево поиска,Случайный,Вставка,0.304480
Бинарное дерево поиска,Случайный,Поиск,0.006521
Бинарное дерево поиска,Случайный,Удаление,0.014053
Бинарное дерево поиска,Случайный,Вставка,0.299029
Бинарное дерево поиска,Случайный,Поиск,0.007552
Бинарное дерево поиска,Случайный,Удаление,0.013073
Бинарное дерево поиска,Случайный,Вставка,0.304265
Бинарное дерево поиска,Случайный,Поиск,0.006518
Бинарное дерево поиска,Случайный,Удаление,0.014555
Бинарное дерево поиска,Случайный,Вставка,0.297193
Бинарное дерево поиска,Случайный,Поиск,0.007529
Бинарное дерево поиска,Случайный,Удаление,0.014092
Бинарное дерево поиска,Случайный,Вставка,0.300190
Бинарное дерево поиска,Случайный,Поиск,0.006525
Бинарное дерево поиска,Случайный,Удаление,0.014096
Бинарное дерево поиска,Случайный,Вставка (среднее),0.301662
Бинарное дерево поиска,Случайный,Поиск (среднее),0.007347
Бинарное дерево поиска,Случайный,Удаление (среднее),0.013959
Бинарное дерево поиска,Отсортированный,Вставка,0.317393
Бинарное дерево поиска,Отсортированный,Поиск,0.007554
Бинарное дерево поиска,Отсортированный,Удаление,0.013053
Бинарное дерево поиска,Отсортированный,Вставка,0.301527
Бинарное дерево поиска,Отсортированный,Поиск,0.006503
Бинарное дерево поиска,Отсортированный,Удаление,0.014265
Бинарное дерево поиска,Отсортированный,Вставка,0.300625
Бинарное дерево поиска,Отсортированный,Поиск,0.008043
Бинарное дерево поиска,Отсортированный,Удаление,0.013068
Бинарное дерево поиска,Отсортированный,Вставка,0.303297
Бинарное дерево поиска,Отсортированный,Поиск,0.007039
Бинарное дерево поиска,Отсортированный,Удаление,0.013601
Бинарное дерево поиска,Отсортированный,Вставка,0.300072
Бинарное дерево поиска,Отсортированный,Поиск,0.008539
Бинарное дерево поиска,Отсортированный,Удаление,0.013535
Бинарное дерево поиска,Отсортированный,Вставка,0.298420
Бинарное дерево поиска,Отсортированный,Поиск,0.007256
Бинарное дерево поиска,Отсортированный,Удаление,0.013550
Бинарное дерево поиска,Отсортированный,Вставка,0.298652
Бинарное дерево поиска,Отсортированный,Поиск,0.008040
Бинарное дерево поиска,Отсортированный,Удаление,0.013532
Бинарное дерево поиска,Отсортированный,Вставка,0.299859
Бинарное дерево поиска,Отсортированный,Поиск,0.007577
Бинарное дерево поиска,Отсортированный,Удаление,0.013575
Бинарное дерево поиска,Отсортированный,Вставка,0.307201
Бинарное дерево поиска,Отсортированный,Поиск,0.008025
Бинарное дерево поиска,Отсортированный,Удаление,0.014125
Бинарное дерево поиска,Отсортированный,Вставка,0.304290
Бинарное дерево поиска,Отсортированный,Поиск,0.007040
Бинарное дерево поиска,Отсортированный,Удаление,0.013611
Бинарное дерево поиска,Отсортированный,Вставка (среднее),0.303134
Бинарное дерево поиска,Отсортированный,Поиск (среднее),0.007562
Бинарное дерево поиска,Отсортированный,Удаление (среднее),0.013591

1 Structure Mode Operation Time
2 Связный список Случайный Вставка 0.047607 0.047621
3 Связный список Случайный Вставка Поиск 0.050350 0.003505
4 Связный список Случайный Вставка Удаление 0.049572 0.005502
5 Связный список Случайный Вставка 0.049258 0.048707
6 Связный список Случайный Вставка Поиск 0.048659 0.003505
7 Связный список Случайный Вставка Удаление 0.049089 0.006007
8 Связный список Отсортированный Случайный Вставка 0.047619 0.048086
9 Связный список Отсортированный Случайный Вставка Поиск 0.047478 0.003546
10 Связный список Отсортированный Случайный Вставка Удаление 0.048357 0.006606
11 Связный список Отсортированный Случайный Вставка 0.048174 0.049133
12 Связный список Отсортированный Случайный Вставка Поиск 0.048270 0.003018
13 Связный список Отсортированный Случайный Вставка Удаление 0.047980 0.006084
14 Хеш таблица Связный список Случайный Вставка 0.002014 0.048328
15 Хеш таблица Связный список Случайный Вставка Поиск 0.002013 0.003524
16 Хеш таблица Связный список Случайный Вставка Удаление 0.002008 0.007066
17 Хеш таблица Связный список Случайный Вставка 0.001003 0.047057
18 Хеш таблица Связный список Случайный Вставка Поиск 0.002505 0.003518
19 Хеш таблица Связный список Случайный Вставка Удаление 0.001908 0.006054
20 Хеш таблица Связный список Отсортированный Случайный Вставка 0.001514 0.047979
21 Хеш таблица Связный список Отсортированный Случайный Вставка Поиск 0.001504 0.003604
22 Хеш таблица Связный список Отсортированный Случайный Вставка Удаление 0.002012 0.006039
23 Хеш таблица Связный список Отсортированный Случайный Вставка 0.001003 0.047694
24 Хеш таблица Связный список Отсортированный Случайный Вставка Поиск 0.002506 0.004520
25 Хеш таблица Связный список Отсортированный Случайный Вставка Удаление 0.001708 0.005522
26 Бинарное дерево поиска Связный список Случайный Вставка 0.318901 0.047864
27 Бинарное дерево поиска Связный список Случайный Вставка Поиск 0.320504 0.003514
28 Бинарное дерево поиска Связный список Случайный Вставка Удаление 0.316685 0.006814
29 Бинарное дерево поиска Связный список Случайный Вставка 0.315862 0.048523
30 Бинарное дерево поиска Связный список Случайный Вставка Поиск 0.320947 0.002611
31 Бинарное дерево поиска Связный список Случайный Вставка Удаление 0.318580 0.006122
32 Бинарное дерево поиска Связный список Отсортированный Случайный Вставка Вставка (среднее) 0.313718 0.048099
33 Бинарное дерево поиска Связный список Отсортированный Случайный Вставка Поиск (среднее) 0.318131 0.003486
34 Бинарное дерево поиска Связный список Отсортированный Случайный Вставка Удаление (среднее) 0.322564 0.006181
35 Бинарное дерево поиска Связный список Отсортированный Вставка 0.315526 0.046193
36 Бинарное дерево поиска Связный список Отсортированный Вставка Поиск 0.314289 0.004520
37 Бинарное дерево поиска Связный список Отсортированный Вставка Удаление 0.316846 0.005769
38 Связный список Отсортированный Вставка 0.048112
39 Связный список Отсортированный Поиск 0.003001
40 Связный список Отсортированный Удаление 0.007026
41 Связный список Отсортированный Вставка 0.047699
42 Связный список Отсортированный Поиск 0.003503
43 Связный список Отсортированный Удаление 0.006515
44 Связный список Отсортированный Вставка 0.047867
45 Связный список Отсортированный Поиск 0.003509
46 Связный список Отсортированный Удаление 0.006001
47 Связный список Отсортированный Вставка 0.047622
48 Связный список Отсортированный Поиск 0.003001
49 Связный список Отсортированный Удаление 0.006008
50 Связный список Отсортированный Вставка 0.047737
51 Связный список Отсортированный Поиск 0.003546
52 Связный список Отсортированный Удаление 0.005514
53 Связный список Отсортированный Вставка 0.048361
54 Связный список Отсортированный Поиск 0.003012
55 Связный список Отсортированный Удаление 0.005328
56 Связный список Отсортированный Вставка 0.049622
57 Связный список Отсортированный Поиск 0.003510
58 Связный список Отсортированный Удаление 0.005522
59 Связный список Отсортированный Вставка 0.048137
60 Связный список Отсортированный Поиск 0.003518
61 Связный список Отсортированный Удаление 0.005531
62 Связный список Отсортированный Вставка 0.048927
63 Связный список Отсортированный Поиск 0.004004
64 Связный список Отсортированный Удаление 0.005470
65 Связный список Отсортированный Вставка (среднее) 0.048028
66 Связный список Отсортированный Поиск (среднее) 0.003512
67 Связный список Отсортированный Удаление (среднее) 0.005869
68 Хеш таблица Случайный Вставка 0.001504
69 Хеш таблица Случайный Поиск 0.000000
70 Хеш таблица Случайный Удаление 0.000000
71 Хеш таблица Случайный Вставка 0.002047
72 Хеш таблица Случайный Поиск 0.000000
73 Хеш таблица Случайный Удаление 0.000000
74 Хеш таблица Случайный Вставка 0.002010
75 Хеш таблица Случайный Поиск 0.000000
76 Хеш таблица Случайный Удаление 0.000000
77 Хеш таблица Случайный Вставка 0.002005
78 Хеш таблица Случайный Поиск 0.000000
79 Хеш таблица Случайный Удаление 0.000000
80 Хеш таблица Случайный Вставка 0.002513
81 Хеш таблица Случайный Поиск 0.000000
82 Хеш таблица Случайный Удаление 0.000000
83 Хеш таблица Случайный Вставка 0.001505
84 Хеш таблица Случайный Поиск 0.000000
85 Хеш таблица Случайный Удаление 0.000000
86 Хеш таблица Случайный Вставка 0.002529
87 Хеш таблица Случайный Поиск 0.000000
88 Хеш таблица Случайный Удаление 0.000000
89 Хеш таблица Случайный Вставка 0.001504
90 Хеш таблица Случайный Поиск 0.000000
91 Хеш таблица Случайный Удаление 0.000000
92 Хеш таблица Случайный Вставка 0.002023
93 Хеш таблица Случайный Поиск 0.000000
94 Хеш таблица Случайный Удаление 0.000000
95 Хеш таблица Случайный Вставка 0.002429
96 Хеш таблица Случайный Поиск 0.000000
97 Хеш таблица Случайный Удаление 0.000000
98 Хеш таблица Случайный Вставка (среднее) 0.002007
99 Хеш таблица Случайный Поиск (среднее) 0.000000
100 Хеш таблица Случайный Удаление (среднее) 0.000000
101 Хеш таблица Отсортированный Вставка 0.002005
102 Хеш таблица Отсортированный Поиск 0.000000
103 Хеш таблица Отсортированный Удаление 0.000000
104 Хеш таблица Отсортированный Вставка 0.001282
105 Хеш таблица Отсортированный Поиск 0.000000
106 Хеш таблица Отсортированный Удаление 0.001504
107 Хеш таблица Отсортированный Вставка 0.001015
108 Хеш таблица Отсортированный Поиск 0.000000
109 Хеш таблица Отсортированный Удаление 0.000000
110 Хеш таблица Отсортированный Вставка 0.002016
111 Хеш таблица Отсортированный Поиск 0.000000
112 Хеш таблица Отсортированный Удаление 0.000000
113 Хеш таблица Отсортированный Вставка 0.001505
114 Хеш таблица Отсортированный Поиск 0.000000
115 Хеш таблица Отсортированный Удаление 0.000000
116 Хеш таблица Отсортированный Вставка 0.002016
117 Хеш таблица Отсортированный Поиск 0.000502
118 Хеш таблица Отсортированный Удаление 0.000000
119 Хеш таблица Отсортированный Вставка 0.002009
120 Хеш таблица Отсортированный Поиск 0.000000
121 Хеш таблица Отсортированный Удаление 0.000000
122 Хеш таблица Отсортированный Вставка 0.001068
123 Хеш таблица Отсортированный Поиск 0.000000
124 Хеш таблица Отсортированный Удаление 0.000000
125 Хеш таблица Отсортированный Вставка 0.002516
126 Хеш таблица Отсортированный Поиск 0.000000
127 Хеш таблица Отсортированный Удаление 0.000000
128 Хеш таблица Отсортированный Вставка 0.002505
129 Хеш таблица Отсортированный Поиск 0.000000
130 Хеш таблица Отсортированный Удаление 0.000000
131 Хеш таблица Отсортированный Вставка (среднее) 0.001794
132 Хеш таблица Отсортированный Поиск (среднее) 0.000050
133 Хеш таблица Отсортированный Удаление (среднее) 0.000150
134 Бинарное дерево поиска Случайный Вставка 0.304277
135 Бинарное дерево поиска Случайный Поиск 0.007550
136 Бинарное дерево поиска Случайный Удаление 0.013564
137 Бинарное дерево поиска Случайный Вставка 0.297918
138 Бинарное дерево поиска Случайный Поиск 0.007167
139 Бинарное дерево поиска Случайный Удаление 0.014539
140 Бинарное дерево поиска Случайный Вставка 0.300777
141 Бинарное дерево поиска Случайный Поиск 0.008009
142 Бинарное дерево поиска Случайный Удаление 0.015144
143 Бинарное дерево поиска Случайный Вставка 0.307342
144 Бинарное дерево поиска Случайный Поиск 0.008307
145 Бинарное дерево поиска Случайный Удаление 0.013577
146 Бинарное дерево поиска Случайный Вставка 0.301149
147 Бинарное дерево поиска Случайный Поиск 0.007792
148 Бинарное дерево поиска Случайный Удаление 0.012897
149 Бинарное дерево поиска Случайный Вставка 0.304480
150 Бинарное дерево поиска Случайный Поиск 0.006521
151 Бинарное дерево поиска Случайный Удаление 0.014053
152 Бинарное дерево поиска Случайный Вставка 0.299029
153 Бинарное дерево поиска Случайный Поиск 0.007552
154 Бинарное дерево поиска Случайный Удаление 0.013073
155 Бинарное дерево поиска Случайный Вставка 0.304265
156 Бинарное дерево поиска Случайный Поиск 0.006518
157 Бинарное дерево поиска Случайный Удаление 0.014555
158 Бинарное дерево поиска Случайный Вставка 0.297193
159 Бинарное дерево поиска Случайный Поиск 0.007529
160 Бинарное дерево поиска Случайный Удаление 0.014092
161 Бинарное дерево поиска Случайный Вставка 0.300190
162 Бинарное дерево поиска Случайный Поиск 0.006525
163 Бинарное дерево поиска Случайный Удаление 0.014096
164 Бинарное дерево поиска Случайный Вставка (среднее) 0.301662
165 Бинарное дерево поиска Случайный Поиск (среднее) 0.007347
166 Бинарное дерево поиска Случайный Удаление (среднее) 0.013959
167 Бинарное дерево поиска Отсортированный Вставка 0.317393
168 Бинарное дерево поиска Отсортированный Поиск 0.007554
169 Бинарное дерево поиска Отсортированный Удаление 0.013053
170 Бинарное дерево поиска Отсортированный Вставка 0.301527
171 Бинарное дерево поиска Отсортированный Поиск 0.006503
172 Бинарное дерево поиска Отсортированный Удаление 0.014265
173 Бинарное дерево поиска Отсортированный Вставка 0.300625
174 Бинарное дерево поиска Отсортированный Поиск 0.008043
175 Бинарное дерево поиска Отсортированный Удаление 0.013068
176 Бинарное дерево поиска Отсортированный Вставка 0.303297
177 Бинарное дерево поиска Отсортированный Поиск 0.007039
178 Бинарное дерево поиска Отсортированный Удаление 0.013601
179 Бинарное дерево поиска Отсортированный Вставка 0.300072
180 Бинарное дерево поиска Отсортированный Поиск 0.008539
181 Бинарное дерево поиска Отсортированный Удаление 0.013535
182 Бинарное дерево поиска Отсортированный Вставка 0.298420
183 Бинарное дерево поиска Отсортированный Поиск 0.007256
184 Бинарное дерево поиска Отсортированный Удаление 0.013550
185 Бинарное дерево поиска Отсортированный Вставка 0.298652
186 Бинарное дерево поиска Отсортированный Поиск 0.008040
187 Бинарное дерево поиска Отсортированный Удаление 0.013532
188 Бинарное дерево поиска Отсортированный Вставка 0.299859
189 Бинарное дерево поиска Отсортированный Поиск 0.007577
190 Бинарное дерево поиска Отсортированный Удаление 0.013575
191 Бинарное дерево поиска Отсортированный Вставка 0.307201
192 Бинарное дерево поиска Отсортированный Поиск 0.008025
193 Бинарное дерево поиска Отсортированный Удаление 0.014125
194 Бинарное дерево поиска Отсортированный Вставка 0.304290
195 Бинарное дерево поиска Отсортированный Поиск 0.007040
196 Бинарное дерево поиска Отсортированный Удаление 0.013611
197 Бинарное дерево поиска Отсортированный Вставка (среднее) 0.303134
198 Бинарное дерево поиска Отсортированный Поиск (среднее) 0.007562
199 Бинарное дерево поиска Отсортированный Удаление (среднее) 0.013591

View File

@ -17,22 +17,23 @@ import (
const (
countUsers = 10_000
countRepeat = 5
countRandomSearch = 100
countNotExitstSearch = 10
countDeletes = 50
countRepeat = 10
countRandomSearch = 200
countNotExitstSearch = 100
countDeletes = 500
)
type TestData struct {
Items []ds.MyData // все записи
ItemsSorted []ds.MyData // все записи отсортированные
Existing []ds.MyData // для поиска (существующие)
NonExisting []ds.MyData // для поиска (несуществующие)
Search []ds.MyData // для поиска (существующие и несуществующие)
ToDelete []ds.MyData // для удаления
UniqueItems []ds.MyData // Уникальные элементы для тестов
}
type DataStructure interface {
Insert(data ds.MyData)
InsertAll(data []ds.MyData)
Search(name string) (string, bool)
Delete(name string) bool
Len() int
@ -97,17 +98,35 @@ func GenerateTestData() TestData {
// fmt.Println(randInd)
}
for _, el := range notExisting {
existing = append(existing, el)
}
// toDelete = make([]ds.MyData, countDeletes)
usedIndices := make(map[int]bool)
for i := 0; i < countDeletes; i++ {
var randInd int
for {
randInd = rand.Intn(countUniq)
if !usedIndices[randInd] {
usedIndices[randInd] = true
break
}
}
toDelete[i] = uniqueItems[randInd]
}
return TestData{
Items: items,
ItemsSorted: itemsSort,
Existing: existing,
NonExisting: notExisting,
Search: existing,
ToDelete: toDelete,
UniqueItems: uniqueItems,
}
}
// Тест вставки массива данных (один раз)
func testOneInsert(structure DataStructure, data []ds.MyData) float64 {
func testOnesInsert(structure DataStructure, data []ds.MyData) float64 {
start := time.Now()
for _, item := range data {
@ -117,63 +136,121 @@ func testOneInsert(structure DataStructure, data []ds.MyData) float64 {
return time.Since(start).Seconds()
}
func TestInsert(factory StructureFactory, data []ds.MyData, nameStruct, mode string) {
BenchRes := make([]csvwriter.BenchmarkResult, 0)
// Тест поиска массива данных (один раз)
func testOnesSearch(structure DataStructure, data []ds.MyData) float64 {
start := time.Now()
allTestTime := time.Now()
averageTime := 0.
for _, item := range data {
structure.Search(item.Name)
// p, ok := structure.Search(item.Name)
// fmt.Println(p, item.Phone, ok)
}
// Тест Слчайной вставки
return time.Since(start).Seconds()
}
for i := 0; i < countRepeat; i++ {
head := factory()
// Тест удаления массива данных (один раз)
func testOnesDelete(structure DataStructure, data []ds.MyData) float64 {
start := time.Now()
resTime := testOneInsert(head, data)
for _, item := range data {
structure.Delete(item.Name)
}
return time.Since(start).Seconds()
}
func testForData(nameStruct, mode string, factory StructureFactory, data_insert, data_search, data_delete []ds.MyData) {
BenchRes := make([]csvwriter.BenchmarkResult, 0, countRepeat*3+3) // Массив строк отчёта
averageTimeInsert := 0.
averageTimeSearch := 0.
averageTimeDelete := 0.
for iteration := 0; iteration < countRepeat; iteration++ {
structure := factory()
insertTime := testOnesInsert(structure, data_insert)
averageTimeInsert += insertTime
averageTime += resTime
BenchRes = append(BenchRes, csvwriter.BenchmarkResult{
Structure: nameStruct,
Mode: mode,
Operation: "Вставка",
Time: resTime,
Time: insertTime,
})
fmt.Printf("%s | Вставка | %s | Время: %f\n", nameStruct, mode, resTime)
// fmt.Println(BenchRes)
searchTime := testOnesSearch(structure, data_search)
averageTimeSearch += searchTime
BenchRes = append(BenchRes, csvwriter.BenchmarkResult{
Structure: nameStruct,
Mode: mode,
Operation: "Поиск",
Time: searchTime,
})
deleteTime := testOnesDelete(structure, data_delete)
averageTimeDelete += deleteTime
BenchRes = append(BenchRes, csvwriter.BenchmarkResult{
Structure: nameStruct,
Mode: mode,
Operation: "Удаление",
Time: deleteTime,
})
fmt.Printf("%s | Вставка | %s | Время: %f\n", nameStruct, mode, insertTime)
fmt.Printf("%s | Поиск | %s | Время: %f\n", nameStruct, mode, searchTime)
fmt.Printf("%s | Удаление | %s | Время: %.9f\n", nameStruct, mode, deleteTime)
}
averageTime = time.Since(allTestTime).Seconds() / countRepeat
averageTimeInsert /= countRepeat
averageTimeSearch /= countRepeat
averageTimeDelete /= countRepeat
BenchRes = append(BenchRes, csvwriter.BenchmarkResult{
Structure: nameStruct,
Mode: mode,
Operation: "Вставка",
Time: averageTime,
Operation: "Вставка (среднее)",
Time: averageTimeInsert,
})
BenchRes = append(BenchRes, csvwriter.BenchmarkResult{
Structure: nameStruct,
Mode: mode,
Operation: "Поиск (среднее)",
Time: averageTimeSearch,
})
BenchRes = append(BenchRes, csvwriter.BenchmarkResult{
Structure: nameStruct,
Mode: mode,
Operation: "Удаление (среднее)",
Time: averageTimeDelete,
})
fmt.Printf("%s | Вставка | %s | Время (среднее): %f\n", nameStruct, mode, averageTimeInsert)
fmt.Printf("%s | Поиск | %s | Время (среднее): %f\n", nameStruct, mode, averageTimeSearch)
fmt.Printf("%s | Удаление | %s | Время (среднее): %f\n", nameStruct, mode, averageTimeDelete)
csvwriter.AppendRaw(BenchRes)
}
func Test(nameStruct string, factory StructureFactory, data TestData) {
func Test(nameStruct string, factory StructureFactory) {
data := GenerateTestData()
// BenchRes := make([]csvwriter.BenchmarkResult, 0)
testForData(nameStruct, "Случайный", factory, data.Items, data.Search, data.ToDelete)
// allTestTime := time.Now()
TestInsert(factory, data.Items, nameStruct, "Случайный")
TestInsert(factory, data.ItemsSorted, nameStruct, "Отсортированный")
testForData(nameStruct, "Отсортированный", factory, data.ItemsSorted, data.Search, data.ToDelete)
}
func main() {
testData := GenerateTestData()
csvwriter.CreateEmptyCSV("results", "benchmarks.csv")
// head_ll := &ll.LinkedList{}
// head_ht := ht.NewHashTable(256, 0.75)
// head_bst := bst.NewBinSearchTree()
csvwriter.CreateEmptyCSV("results", "benchmarks.csv")
fmt.Println("============= Начало тестов =============")
Test("Связный список", NewLinkedList, testData)
Test("Хеш таблица", NewHashTable, testData)
Test("Бинарное дерево поиска", NewBinSearchTree, testData)
Test("Связный список", NewLinkedList)
Test("Хеш таблица", NewHashTable)
Test("Бинарное дерево поиска", NewBinSearchTree)
}