-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.c
More file actions
97 lines (92 loc) · 4.35 KB
/
test.c
File metadata and controls
97 lines (92 loc) · 4.35 KB
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
97
#include "stdio.h"
#include "header/random_data.h"
#include "header/sort.h"
#include "header/search.h"
#include "header/2-3tree.h"
#include "header/btree.h"
//#include <limits.h>
//#define LENGTH 100000
#define LENGTH 1000000
#define LENGTH2 10000
/**
* 2018-11-9
*/
int sort(){
int array[LENGTH];
int range=10000;
printf("length:%d\trange:0~%d\n",LENGTH,range);
printf("--------------比较排序--------------------\n");
printf("冒泡排序:\t%f秒\n",bubble_sort(random_data(array,LENGTH,range),LENGTH));
printf("选择排序:\t%f秒\n",selection_sort(random_data(array,LENGTH,range),LENGTH));
printf("插入排序:\t%f秒\n",insertion_sort(random_data(array,LENGTH,range),LENGTH));
printf("希尔排序:\t%f秒\n",shell_sort(random_data(array,LENGTH,range),LENGTH));
printf("堆排序:\t%f秒\n",heap_sort(random_data(array,LENGTH,range),LENGTH));
printf("归并排序:\t%f秒\n",merge_sort(random_data(array,LENGTH,range),LENGTH));
printf("快速排序:\t%f秒\n",quick_sort(random_data(array,LENGTH,range),LENGTH));
printf("--------------非比较排序--------------------\n");
printf("计数排序:\t%f秒\n",counting_sort(random_data(array,LENGTH,range),LENGTH,range));
printf("桶排序:\t%f秒\n",bucket_sort(random_data(array,LENGTH,range),LENGTH,range));
return 0;
}
int main(){
int array[LENGTH];
int range=10000000;
double time;
int *testarr = random_data(array,LENGTH,range);
printf("--------------随机插入--------------------\n");
printf("length:%d\trange:0~%d\n",LENGTH,range);
//二叉搜索树
TreeNode *treeNode = NULL;
treeNode = binarytree_search_assemble(testarr,LENGTH,treeNode,&time);
printf("二叉树装配时间:\t%f秒\n",time);
printf("二叉树查询时间:\t%f秒\n",binarytree_search(testarr,LENGTH,treeNode));
//2-3树
two_three_tree *twoThreeTree=NULL;
twoThreeTree = twothreetree_search_assemble(testarr,LENGTH,twoThreeTree,&time);
printf("2-3树装配时间:\t%f秒\n",time);
printf("2-3树查询时间:\t%f秒\n",twothreetree_search(testarr,LENGTH,twoThreeTree));
//红黑树
red_black_tree *redBlackTree=NULL;
redBlackTree = redblacktree_search_assemble(testarr,LENGTH,redBlackTree,&time);
printf("红黑树装配时间:\t%f秒\n",time);
printf("红黑树查询时间:\t%f秒\n",redblacktree_search(testarr,LENGTH,redBlackTree));
//avl树
avl_tree *avlTree=NULL;
avlTree = avltree_search_assemble(testarr,LENGTH,avlTree,&time);
printf("avl树装配时间:\t%f秒\n",time);
printf("avl树查询时间:\t%f秒\n",avltree_search(testarr,LENGTH,avlTree));
//b 树
b_tree *bTree=NULL;
bTree = btree_search_assemble(testarr,LENGTH,bTree,&time);
printf(" b树 装配时间:\t%f秒\n",time);
printf(" b树 查询时间:\t%f秒\n",btree_search(testarr,LENGTH,bTree));
//排序 极端情况
testarr = random_data(array,LENGTH2,range);
merge_sort(random_data(array,LENGTH,range),LENGTH);
printf("\n--------------顺序插入--------------------\n");
printf("length:%d\trange:0~%d\n",LENGTH2,range);
TreeNode *treeNode2 = NULL;
treeNode2 = binarytree_search_assemble(testarr,LENGTH2,treeNode2,&time);
printf("二叉树装配时间:\t%f秒\n",time);
printf("二叉树查询时间:\t%f秒\n",binarytree_search(testarr,LENGTH2,treeNode2));
//2-3树
two_three_tree *twoThreeTree2=NULL;
twoThreeTree2 = twothreetree_search_assemble(testarr,LENGTH2,twoThreeTree2,&time);
printf("2-3树装配时间:\t%f秒\n",time);
printf("2-3树查询时间:\t%f秒\n",twothreetree_search(testarr,LENGTH2,twoThreeTree2));
//红黑树
red_black_tree *redBlackTree2=NULL;
redBlackTree2 = redblacktree_search_assemble(testarr,LENGTH2,redBlackTree2,&time);
printf("红黑树装配时间:\t%f秒\n",time);
printf("红黑树查询时间:\t%f秒\n",redblacktree_search(testarr,LENGTH2,redBlackTree2));
//avl 树
avl_tree *avlTree2=NULL;
avlTree2 = avltree_search_assemble(testarr,LENGTH2,avlTree2,&time);
printf("avl树装配时间:\t%f秒\n",time);
printf("avl树查询时间:\t%f秒\n",avltree_search(testarr,LENGTH2,avlTree2));
//b 树
b_tree *bTree2=NULL;
bTree2 = btree_search_assemble(testarr,LENGTH2,bTree2,&time);
printf(" b树 装配时间:\t%f秒\n",time);
printf(" b树 查询时间:\t%f秒\n",btree_search(testarr,LENGTH2,bTree2));
}