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

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 return root
} }
func (bst *BinSearchTree) InsertAll(data []ds.MyData) {
for _, el := range data {
bst.Insert(el)
}
}
// Delete удаляет узел по имени. // Delete удаляет узел по имени.
// Возвращает нового потомка для родительского узла. // Возвращает нового потомка для родительского узла.

View File

@ -90,6 +90,12 @@ func (h *HashTable) Insert(new ds.MyData) {
h.size++ 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) { func (h *HashTable) Search(name string) (phone string, status bool) {
ind := h.GetIndex(name) ind := h.GetIndex(name)

View File

@ -80,6 +80,12 @@ func (ll *LinkedList) Insert(data ds.MyData) {
current.next = newNode 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) { func (ll *LinkedList) Search(targetName string) (string, bool) {
current := ll.head current := ll.head

View File

@ -1,37 +1,199 @@
Structure,Mode,Operation,Time Structure,Mode,Operation,Time
Связный список,Случайный,Вставка,0.047607 Связный список,Случайный,Вставка,0.047621
Связный список,Случайный,Вставка,0.050350 Связный список,Случайный,Поиск,0.003505
Связный список,Случайный,Вставка,0.049572 Связный список,Случайный,Удаление,0.005502
Связный список,Случайный,Вставка,0.049258 Связный список,Случайный,Вставка,0.048707
Связный список,Случайный,Вставка,0.048659 Связный список,Случайный,Поиск,0.003505
Связный список,Случайный,Вставка,0.049089 Связный список,Случайный,Удаление,0.006007
Связный список,Отсортированный,Вставка,0.047619 Связный список,Случайный,Вставка,0.048086
Связный список,Отсортированный,Вставка,0.047478 Связный список,Случайный,Поиск,0.003546
Связный список,Отсортированный,Вставка,0.048357 Связный список,Случайный,Удаление,0.006606
Связный список,Отсортированный,Вставка,0.048174 Связный список,Случайный,Вставка,0.049133
Связный список,Отсортированный,Вставка,0.048270 Связный список,Случайный,Поиск,0.003018
Связный список,Отсортированный,Вставка,0.047980 Связный список,Случайный,Удаление,0.006084
Хеш таблица,Случайный,Вставка,0.002014 Связный список,Случайный,Вставка,0.048328
Хеш таблица,Случайный,Вставка,0.002013 Связный список,Случайный,Поиск,0.003524
Хеш таблица,Случайный,Вставка,0.002008 Связный список,Случайный,Удаление,0.007066
Хеш таблица,Случайный,Вставка,0.001003 Связный список,Случайный,Вставка,0.047057
Хеш таблица,Случайный,Вставка,0.002505 Связный список,Случайный,Поиск,0.003518
Хеш таблица,Случайный,Вставка,0.001908 Связный список,Случайный,Удаление,0.006054
Хеш таблица,Отсортированный,Вставка,0.001514 Связный список,Случайный,Вставка,0.047979
Хеш таблица,Отсортированный,Вставка,0.001504 Связный список,Случайный,Поиск,0.003604
Хеш таблица,Отсортированный,Вставка,0.002012 Связный список,Случайный,Удаление,0.006039
Хеш таблица,Отсортированный,Вставка,0.001003 Связный список,Случайный,Вставка,0.047694
Хеш таблица,Отсортированный,Вставка,0.002506 Связный список,Случайный,Поиск,0.004520
Хеш таблица,Отсортированный,Вставка,0.001708 Связный список,Случайный,Удаление,0.005522
Бинарное дерево поиска,Случайный,Вставка,0.318901 Связный список,Случайный,Вставка,0.047864
Бинарное дерево поиска,Случайный,Вставка,0.320504 Связный список,Случайный,Поиск,0.003514
Бинарное дерево поиска,Случайный,Вставка,0.316685 Связный список,Случайный,Удаление,0.006814
Бинарное дерево поиска,Случайный,Вставка,0.315862 Связный список,Случайный,Вставка,0.048523
Бинарное дерево поиска,Случайный,Вставка,0.320947 Связный список,Случайный,Поиск,0.002611
Бинарное дерево поиска,Случайный,Вставка,0.318580 Связный список,Случайный,Удаление,0.006122
Бинарное дерево поиска,Отсортированный,Вставка,0.313718 Связный список,Случайный,Вставка (среднее),0.048099
Бинарное дерево поиска,Отсортированный,Вставка,0.318131 Связный список,Случайный,Поиск (среднее),0.003486
Бинарное дерево поиска,Отсортированный,Вставка,0.322564 Связный список,Случайный,Удаление (среднее),0.006181
Бинарное дерево поиска,Отсортированный,Вставка,0.315526 Связный список,Отсортированный,Вставка,0.046193
Бинарное дерево поиска,Отсортированный,Вставка,0.314289 Связный список,Отсортированный,Поиск,0.004520
Бинарное дерево поиска,Отсортированный,Вставка,0.316846 Связный список,Отсортированный,Удаление,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 ( const (
countUsers = 10_000 countUsers = 10_000
countRepeat = 5 countRepeat = 10
countRandomSearch = 100 countRandomSearch = 200
countNotExitstSearch = 10 countNotExitstSearch = 100
countDeletes = 50 countDeletes = 500
) )
type TestData struct { type TestData struct {
Items []ds.MyData // все записи Items []ds.MyData // все записи
ItemsSorted []ds.MyData // все записи отсортированные ItemsSorted []ds.MyData // все записи отсортированные
Existing []ds.MyData // для поиска (существующие) Search []ds.MyData // для поиска (существующие и несуществующие)
NonExisting []ds.MyData // для поиска (несуществующие)
ToDelete []ds.MyData // для удаления ToDelete []ds.MyData // для удаления
UniqueItems []ds.MyData // Уникальные элементы для тестов
} }
type DataStructure interface { type DataStructure interface {
Insert(data ds.MyData) Insert(data ds.MyData)
InsertAll(data []ds.MyData)
Search(name string) (string, bool) Search(name string) (string, bool)
Delete(name string) bool Delete(name string) bool
Len() int Len() int
@ -97,17 +98,35 @@ func GenerateTestData() TestData {
// fmt.Println(randInd) // 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{ return TestData{
Items: items, Items: items,
ItemsSorted: itemsSort, ItemsSorted: itemsSort,
Existing: existing, Search: existing,
NonExisting: notExisting,
ToDelete: toDelete, ToDelete: toDelete,
UniqueItems: uniqueItems,
} }
} }
// Тест вставки массива данных (один раз) // Тест вставки массива данных (один раз)
func testOneInsert(structure DataStructure, data []ds.MyData) float64 { func testOnesInsert(structure DataStructure, data []ds.MyData) float64 {
start := time.Now() start := time.Now()
for _, item := range data { for _, item := range data {
@ -117,63 +136,121 @@ func testOneInsert(structure DataStructure, data []ds.MyData) float64 {
return time.Since(start).Seconds() 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() for _, item := range data {
averageTime := 0. structure.Search(item.Name)
// p, ok := structure.Search(item.Name)
// Тест Слчайной вставки // fmt.Println(p, item.Phone, ok)
for i := 0; i < countRepeat; i++ {
head := factory()
resTime := testOneInsert(head, data)
averageTime += resTime
BenchRes = append(BenchRes, csvwriter.BenchmarkResult{
Structure: nameStruct,
Mode: mode,
Operation: "Вставка",
Time: resTime,
})
fmt.Printf("%s | Вставка | %s | Время: %f\n", nameStruct, mode, resTime)
// fmt.Println(BenchRes)
} }
averageTime = time.Since(allTestTime).Seconds() / countRepeat return time.Since(start).Seconds()
}
// Тест удаления массива данных (один раз)
func testOnesDelete(structure DataStructure, data []ds.MyData) float64 {
start := time.Now()
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
BenchRes = append(BenchRes, csvwriter.BenchmarkResult{ BenchRes = append(BenchRes, csvwriter.BenchmarkResult{
Structure: nameStruct, Structure: nameStruct,
Mode: mode, Mode: mode,
Operation: "Вставка", Operation: "Вставка",
Time: averageTime, Time: insertTime,
}) })
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)
}
averageTimeInsert /= countRepeat
averageTimeSearch /= countRepeat
averageTimeDelete /= countRepeat
BenchRes = append(BenchRes, csvwriter.BenchmarkResult{
Structure: nameStruct,
Mode: mode,
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) 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() testForData(nameStruct, "Отсортированный", factory, data.ItemsSorted, data.Search, data.ToDelete)
TestInsert(factory, data.Items, nameStruct, "Случайный")
TestInsert(factory, data.ItemsSorted, nameStruct, "Отсортированный")
} }
func main() { func main() {
testData := GenerateTestData()
csvwriter.CreateEmptyCSV("results", "benchmarks.csv")
// head_ll := &ll.LinkedList{} csvwriter.CreateEmptyCSV("results", "benchmarks.csv")
// head_ht := ht.NewHashTable(256, 0.75)
// head_bst := bst.NewBinSearchTree()
fmt.Println("============= Начало тестов =============") fmt.Println("============= Начало тестов =============")
Test("Связный список", NewLinkedList, testData) Test("Связный список", NewLinkedList)
Test("Хеш таблица", NewHashTable, testData) Test("Хеш таблица", NewHashTable)
Test("Бинарное дерево поиска", NewBinSearchTree, testData) Test("Бинарное дерево поиска", NewBinSearchTree)
} }