You are on page 1of 4

2.

thứ tự chạy : +) Khai báo các hàm và tạo hàm “random_list” để tạo một mảng ngẫu nhiên có n
phần tử
+) dùng vòng lặp while mà n được tăng dần từ 10 -> 10**5 sau mỗi lần đo thời
gian thì tăng giá trị n=int(n*1.2)
+) trong mỗi lần lặp vòng while, tạo ra một mảng “ls” có n phần tử rồi copy mảng
ls vào ls1 và ls2
+) sử dụng hàm đo thời gian “timeit.timeit” để đo thời gian chạy của các hàm:
selection_sort(a); selection_sort_use_min_and_index(b);insertion_sort(c) và tỉ lệ thời gian thực
thi giữa các hàm : a/b ; b/c ; a/c
+) Sau khi đo thời gian xong thì in ra n, thời gian chạy của 3 hàm đấy ( đã nêu ở
trên ) và tỉ lệ thời gian thực thi giữa các hàm ( so sánh hiệu suất chạy thuật toán của các hàm ).
Selection_sort_use_m insertion_sort (
n Selection_sort(a) in_and_index(b) c) a/b b/c a/c
1.00999999999989 4.799999999999 1.052083333 2.1041666666667
10 99e-05 9.599999999998499e-06 249e-06 3333937 2.0 873
7.89999999999818 5.199999999996 0.918604651 1.6538461538 1.5192307692313
12 6e-06 8.599999999997499e-06 874e-06 162847 46667 338
9.20000000000087 6.800000000001 0.920000000 1.4705882352 1.3529411764704
14 4e-06 9.999999999996123e-06 2495e-06 0004441 932773 682
1.07999999999983 1.0900000000001187e- 6.899999999997 0.990825688 1.5797101449 1.5652173913047
16 11e-05 05 186e-06 0731316 283524 414
1.30999999999950 1.3199999999997936e- 1.139999999999 0.992424242 1.1578947368 1.1491228070176
19 6e-05 05 4748e-05 4240234 424577 4
1.70999999999990 1.7299999999997873e- 1.210000000000 0.988439306 1.4297520661 1.4132231404956
22 6e-05 05 0999e-05 3584488 154086 734
1.97000000000044 1.439999999999 1.031413612 1.3263888888 1.3680555555560
26 36e-05 1.910000000000106e-05 7748e-05 56562 8917 776
7.24000000000002 4.610000000000 1.368620037 1.1475054229 1.5704989154012
31 4e-05 5.290000000000156e-05 031e-05 8071476 935184 963
7.08999999999987 2.8300000000001935e- 2.979999999999 2.505300353 0.9496644295 2.3791946308727
37 4e-05 05 6496e-05 3566747 303779 208
9.15000000000013 7.640000000000 1.226541554 0.9764397905 1.1976439790575
44 e-05 7.460000000000105e-05 424e-05 9597856 758758 422
5.82000000000013 4.520000000000 1.316742081 0.9778761061 1.2876106194689
52 06e-05 4.420000000000118e-05 218e-05 447958 946692 934
0.00018010000000 0.000202500000000001 0.000179999999 0.889382716 1.1250000000 1.0005555555555
62 000248 3 9999996 0493893 000095 716
0.00024679999999 0.000165699999999997 0.000105700000 1.489438744 1.5676442762 2.3349101229895
74 99984 8 00000024 7193826 535234 73
0.00017810000000 0.000141900000000000 0.000129100000 1.255109231 1.0991479473 1.3795507358636
88 000048 36 00000005 853418 276553 747
0.00020739999999 0.000151500000000005 0.000202700000 1.368976897 0.7474099654 1.0231869758263
105 999648 8 0000001 6896934 662344 263
0.00028910000000 0.000293000000000001 0.000282400000 0.986689419 1.0375354107 1.0237252124645
126 000047 6 0000021 7952181 648704 833
0.00039990000000 0.000282899999999995 0.000364200000 1.413573700 0.7767710049 1.0980230642504
151 000164 65 000002 9544285 423231 103
0.00057130000000 0.000364900000000001 0.001083299999 1.565634420 0.3368411335 0.5273700729253
181 00037 33 9999954 3891523 733434 264
0.00081160000000 0.000507100000000003 0.000971600000 1.600473279 0.5219226018 0.8353231782626
217 00026 4 000003 432059 937854 596
0.00114199999999 0.000700099999999995 0.001237300000 1.631195543 0.5658288208 0.9229774509011
260 99972 2 0000037 493794 195208 507
0.00345859999999 0.001779900000 1.439044686 1.3503005786 1.9431428731951
312 9999 0.0024034 000001 69385 84195 22
0.00273310000000 0.001329399999999994 0.003824599999 2.055889875 0.3475919050 0.7146106782408
374 0002 5 9999974 1316486 3581955 629
0.00368879999999 0.003924299999 2.026590484 0.4638279438 0.9399892974543
448 9992 0.001820199999999994 999992 5621385 371169 23
0.00601739999999 0.002608700000000005 0.005439200000 2.306666155 0.4796109722 1.1063023974113
537 9992 5 000005 5563996 0179494 815
0.00805830000000 0.003715700000000002 0.009006899999 2.168716527 0.4125392754 0.8946807447623
644 0004 3 999998 168501 4438185 495
0.01123739999999 0.011984400000 2.069807706 0.4530222622 0.9376689696605
772 998 0.005429199999999995 000006 4760905 7428927 567
0.01768910000000 0.017578199999 2.403736920 0.4186435471 1.0063089508595
926 0013 0.007359000000000004 99999 77728 2086616 888
0.02309040000000 0.025203399999 2.155724848 0.4249902790 0.9161621051128
1111 001 0.010711199999999976 999987 7564475 893285 032
0.03366009999999 0.044238999999 2.196804657 0.3463527656 0.7608693686566
1333 997 0.015322300000000011 99997 2642455 592604 15
0.053414399999 2.040673884 0.4369477144 0.8916677899592
1599 0.0476279 0.023339300000000007 99997 820881 739999 624
0.07097299999999 0.082883999999 2.005192882 0.4270377877 0.8562931325708
1918 995 0.03539459999999994 99996 5301055 5155593 217
0.12480760000000 0.111531199999 2.435512607 0.4594669473 1.1190375428579
2301 002 0.05124489999999993 99994 1082234 654005 633
0.171778899999 2.212886887 0.3894122037 0.8617251594928
2761 0.1480262 0.06689279999999997 99985 6770005 107004 139
0.21016229999999 0.234915300000 2.140402818 0.4179727757 0.8946301071066
3313 99 0.09818820000000006 00016 261255 1958913 881
0.29524469999999 2.115136409 0.3690363578 0.7805622369768
3975 98 0.1395865999999999 0.3782462 9419285 0081834 68
0.45821999999999 2.207023441 0.3962358746 0.8745018639130
4770 985 0.20761900000000022 0.5239783 9778507 5358817 663
0.66289729999999 0.691134299999 2.293215562 0.4182528634 0.9591439753460
5724 96 0.2890689000000002 9999 1030113 449198 358
0.87629659999999 1.062599300000 1.965101650 0.4196590379 0.8246726682390
6868 99 0.4459294000000007 0005 6200276 8355647 996
1.31815349999999 1.601146699999 2.120910141 0.3881616219 0.8232559202726
8241 93 0.6215036999999999 9993 0015734 17592 396
1.90695510000000 2.297119299999 2.136660649 0.3885271435 0.8301506586967
9889 11 0.8924932000000005 9985 0671303 4017276 435
2.81602569999999 3.163315099999 2.126584946 0.4186117595 0.8902134662462
11866 73 1.3242008999999975 9984 4382653 4301805 171
4.687415800000 2.171339982 0.4479937751 0.9727467957931
14239 4.5596687 2.0999330999999977 004 2118165 6285116 097
7.130765099999 2.084862438 0.4266530249 0.8895128658774
17086 6.3429073 3.042362499999996 998 318908 3276586 641
9.22895100000000 10.16304540000 1.921544517 0.4725829228 0.9080891245452
20503 2 4.8028817 0001 7423383 313788 865
13.9505891999999 13.96815200000 2.093331701 0.4771067353 0.9987426540031
24603 96 6.664299400000004 0003 153761 791685 918
18.0716302999999 22.84899329999 1.889436383 0.4185988097 0.7909158212235
29523 95 9.564561400000002 999 3557482 7775976 111
31.3011175000000 32.96163030000 2.095425447 0.4531885669 0.9496228558816
35427 04 14.93783400000001 0024 892913 5022147 152
38.1762054999999 1.897167773 0.4431330819 0.8406978025505
42512 8 20.1227356 45.4101407 7494093 4616535 211
66.3230056000000 1.912515162 0.4905184498 0.9381239729558
51014 4 34.678420800000026 70.6974851 7435122 564296 647
94.8583597000000 1.958566062 0.4475409572 0.8765385302941
61216 5 48.4325556 108.2192698 1220666 575031 681
154.058021999999 156.7271198000 1.787828388 0.5498121538 0.9829697770021
73459 94 86.17047530000002 0008 5942532 248288 794
212.195224900000 259.9929484000 1.429426364 0.5709686320 0.8161576158347
88150 08 148.44781809999995 0016 1992873 861764 837

Nhận xét:
- Các thuật toán trên có cùng lớp độ phức tạp ( vì tỉ lệ thời gian chạy của chúng là 1
hằng số )
- Selection_sort và Insertion_sort có thời gian chạy xấp xỉ nhau, tỉ lệ xấp xỉ 1,
selection_sort và insertion_sort có lúc cái này nhanh hơn,các kia nhanh hơn một
chút và ngược lại tùy thuộc vào mức độ tự sắp xếp của mảng.
- Selection_sort chạy chậm hơn selection_sort có dùng min và index , chậm hơn xấp
xỉ 2 ( đa số )
- Selection_sort có dùng min và index chạy nhanh hơn insertion_sort với tỉ lệ xấp xỉ 0.4
( khi n càng ngày càng lớn )

You might also like