Created
July 8, 2011 06:52
-
-
Save josephg/1071272 to your computer and use it in GitHub Desktop.
Compare if two numbers have the same sign, benchmark.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script> | |
var arr = []; | |
for (var i = 0; i < 100000; i++) { | |
num = Math.floor(Math.random() * 4147483648) - 2147483648 ; | |
if(num <= 0) { | |
num--; | |
} | |
arr.push(num); | |
} | |
// Task: iterate through the list, comparing each two adjacent elements and counting how many times | |
// elem[i+1] has the same sign as elem[i]. | |
var nieve = function() { | |
var count = 0; | |
for (var i = 0; i < arr.length - 1; i++) { | |
if ((arr[i] < 0) == (arr[i + 1] < 0)) { | |
count++; | |
} | |
} | |
return count; | |
}; | |
var mul = function() { | |
var count = 0; | |
for (var i = 0; i < arr.length - 1; i++) { | |
if (arr[i] * arr[i + 1] > 0) { | |
count++; | |
} | |
} | |
return count; | |
}; | |
var xor = function() { | |
var count = 0; | |
for (var i = 0; i < arr.length - 1; i++) { | |
if ((arr[i] ^ arr[i + 1]) >= 0) { | |
count++; | |
} | |
} | |
return count; | |
}; | |
var time = function(f) { | |
var start = Date.now(); | |
for (var i = 0; i < 100; i++) { | |
f(); | |
} | |
var end = Date.now(); | |
return end - start; | |
}; | |
document.write("nieve: " + time(nieve) + "ms, result = " + nieve()); | |
document.write('<br/>'); | |
document.write("mul: " + time(mul) + "ms, result = " + mul()); | |
document.write('<br/>'); | |
document.write("xor: " + time(xor) + "ms, result = " + xor()); | |
document.write('<br/>'); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Different! -13356609161 15558260098
-31c1dae89 39f583582
Different! 4012734302 -2029386714
ef2d775e -78f5fbda
Different! 13520524016 7048866547
325e2d2f0 1a4252af3
Different! -16290136002 -200033413
-3caf7bfc2 -bec4485
Different! -1016762189 -2554193398
-3c9a8f4d -983de5f6
Different! -11482856695 -8930616771
-2ac6e7cf7 -2144e65c3
Different! -12969612540 -15680216782
-3050c94fc -3a69d1ece
Different! -7608899423 -801581953
-1c586975f -2fc72b81
Different! -801581953 -15246330883
-2fc72b81 -38cc08c03
Different! -2659307232 6154927608
-9e81cee0 16edcbdf8
Different! 12890151751 7054473949
300501b47 1a47abadd
Different! 7054473949 -13455313216
1a47abadd -321ffc940
Different! -13455313216 -16221105580
-321ffc940 -3c6da6dac
Different! -6517100909 18411217028
-18473116d 44964e084
Different! -13513219346 15381586630
-325735d12 394d062c6
Different! 15381586630 -9421179436
394d062c6 -2318bca2c
Different! 14685882995 15465083431
36b58ca73 399ca7227
Different! 11981009363 10617790790
2ca1fb1d3 278dea146
Different! 1864899072 -16036613692
6f281a00 -3bbdb4e3c
Different! -16036613692 5376621577
-3bbdb4e3c 14078bc09
Different! 17743507654 4139203629
4219870c6 f6b73c2d
Different! -3199056782 -1113507950
-beadbb8e -425ec86e
Different! -1113507950 -17004930761
-425ec86e -3f592a6c9
Different! -17004930761 531002214
-3f592a6c9 1fa67366
Different! 531002214 -20581089236
1fa67366 -4caba7fd4
Different! 16450857975 -4523357883
3d48c2bf7 -10d9cf6bb
Different! -4523357883 19690303386
-10d9cf6bb 495a22f9a
Different! 15761969234 6337869908
3ab7c9052 179c43854
Different! 6337869908 -17134091772
179c43854 -3fd457dfc
Different! -12832006077 10039669019
-2fcd8dfbd 25669311b
Different! 10039669019 8115227495
25669311b 1e3b48b67
Different! -12854300888 18690426218
-2fe2d10d8 45a09456a
Different! 18690426218 -3816976477
45a09456a -e382705d
Different! -3816976477 1793005396
-e382705d 6adf1754
Different! 1793005396 -20618495603
6adf1754 -4ccf54673
Different! -20618495603 1199955950
-4ccf54673 4785dfee
Different! 1199955950 -12002151868
4785dfee -2cb624dbc
Different! -11653878660 -13884649324
-2b6a01384 -33b96ef6c
Different! 1224013064 12852782330
48f4f508 2fe15e4fa
Different! -7424140134 6036986180
-1ba836366 167d51944
Different! -4723108898 -10741493408
-11984ec22 -2803e2ea0
Different! -10741493408 -4855450846
-2803e2ea0 -121684cde
Different! 13785563883 3760855017
335af02eb e02a17e9
Different! 3760855017 -19246598265
e02a17e9 -47b2fc879
Different! 19290247828 -17009826548
47dc9d294 -3f5dd5af4
Different! -17009826548 -9227894875
-3f5dd5af4 -22606805b
Different! -9227894875 -21396400219
-22606805b -4fb53285b
Different! -21396400219 1383441299
-4fb53285b 5275a393
Different! 1383441299 12013864366
5275a393 2cc1505ae
Different! -7312204463 17258727485
-1b3d762af 404b3483d
Different! -654017108 16856084920
-26fb8254 3ecb371b8
Different! 12683455535 -6045204776
2f3fe2c2f -168528128
Different! -10045731873 -7746795681
-256c5b421 -1cdbeb8a1
Different! -7746795681 5889832890
-1cdbeb8a1 15f0fb7ba
Different! -4861613948 4170148352
-121c6577c f88f6a00
Different! 4170148352 10635194787
f88f6a00 279e831a3
Different! -6232643659 -16687780758
-1737e984b -3e2ab5396
Different! -16687780758 -18316592118
-3e2ab5396 -443c103f6
Different! 6365620667 16462384234
17b6ba9bb 3d53c0c6a
Different! -19504346907 2002633340
-48a8cb71b 775dc27c
Different! 610958882 -7721977162
246a7e22 -1cc44054a
Different! -11382055099 -13540929219
-2a66c60bb -3271a2ec3
Different! -13540929219 8474992014
-3271a2ec3 1f9261d8e
Different! 12624097552 13285993839
2f0747110 317e82d6f
Different! 13285993839 -7384412897
317e82d6f -1b82532e1
Different! -7384412897 5216505462
-1b82532e1 136ed8e76
Different! 10248337279 -16802548221
262d9377f -3e98289fd
Different! -16802548221 4808699796
-3e98289fd 11e9eef94
Different! 4808699796 11326950702
11e9eef94 2a3238d2e
Different! -7489758132 19002932105
-1be6ca3b4 46ca9bb89
Different! -17564243555 -16210421078
-416e91663 -3c6376556
Different! 3556135645 -197044296
d3f652dd -bbea848
Different! -197044296 -20661633151
-bbea848 -4cf87807f
Different! 3268680760 -9952973037
c2d41c38 -2513e50ed
Different! -18893791577 2333336882
-466286159 8b13e532
Different! 2333336882 1703430530
8b13e532 65884982
Different! 1703430530 -21400618256
65884982 -4fb938510
Different! -8401832982 5881885498
-1f4c9cc16 15e96733a
Different! 6298652829 15815493975
1776dd09d 3aead4957
Different! 15815493975 18758929515
3aead4957 45e1e8c6b
Different! 14260587619 -21059712030
351ff4c63 -4e741b41e
Different! -21059712030 18878974868
-4e741b41e 465464b94
Different! 18878974868 -4196938217
465464b94 -fa2831e9
Different! -4196938217 -17232904956
-fa2831e9 -4032942fc
Different! 13686205178 -21047643079
32fc2eafa -4e6898bc7
Different! -11311262460 -17256589489
-2a2342afc -40492a8b1
Different! -1291817597 -12672145862
-4cff927d -2f35199c6
Different! -12672145862 -6061212601
-2f35199c6 -16946c3b9
Different! -6061212601 12872458905
-16946c3b9 2ff422299
Different! 12872458905 8671345969
2ff422299 204da3d31
Different! -1808940466 -8163914822
-6bd23db2 -1e69b7446
Different! -11020456422 13888655468
-290ded1e6 33bd4106c
Different! 13888655468 3721478285
33bd4106c ddd1408d
Different! 3721478285 -18123871831
ddd1408d -438445657
Different! -18123871831 7541225032
-438445657 1c17df648
Different! 7541225032 2003504560
1c17df648 776b0db0
Different! 2003504560 -20597078269
776b0db0 -4cbae78fd
Different! -20597078269 -14633232339
-4cbae78fd -3683567d3
Different! 18193144280 -20760126605
43c6559d8 -4d566648d
Different! -20760126605 -4433711094
-4d566648d -108450ff6
Different! -4433711094 2951404275
-108450ff6 afeadaf3
Different! -2689235268 -1057973571
-a04a7944 -3f0f6543
Different! 9867389995 -3316972986
24c246c2b -c5b4fdba
Different! -3316972986 -18084912140
-c5b4fdba -435f1dc0c
Different! -18084912140 2506488786
-435f1dc0c 9565fbd2
Different! 2155187912 10589145732
80758ec8 277298a84
Different! 12890903238 -4143755156
3005b92c6 -f6fcaf94
Different! -4143755156 -4660477112
-f6fcaf94 -115c93cb8
Different! 14457312368 -10784019113
35db91470 -282c712a9
Different! -10784019113 -8923934637
-282c712a9 -213e86fad
Different! -8923934637 -4067731501
-213e86fad -f274a82d
Different! 11745377078 -17825101946
2bc143b36 -42675787a
Different! 8628714920 -21354510942
2024fbda8 -4f8d3fa5e
Different! 2947725376 -10334913852
afb2b840 -26802453c
Different! -5618178105 -16703102520
-14ede9839 -3e3951e38
Different! -16703102520 1173043144
-3e3951e38 45eb37c8
Different! 1173043144 -20427421595
45eb37c8 -4c191b79b
Different! 15733820401 13256243099
3a9cf0bf1 31622379b
Different! 14575692361 19525084930
364c76a49 48bc92702
Different! 19525084930 13761885840
48bc92702 33445b690
Different! -14192330979 -15087137893
-34dedc8e3 -383437465
Different! 15341384547 -10016049897
3926af363 -25500cae9
Different! -10016049897 -15888712990
-25500cae9 -3b30a851e
Different! 16750184738 13662605836
3e6638922 32e5ad20c
Different! 13662605836 3440389561
32e5ad20c cd102db9
Different! -16583315636 -9306583165
-3dc7150b4 -22ab7307d
Different! -13233662392 -19485657325
-314c9a9b8 -4896f88ed
Different! -19485657325 -17940084210
-4896f88ed -42d4ff5f2
Different! 826006301 15040975857
313bdb1d 3808313f1
Different! -2809785845 -8941787358
-a779edf5 -214f8d8de
Different! 17318637439 19772960130
408456f7f 49a8f6d82
Different! -19824378607 13911863718
-49da002ef 33d3631a6
Different! 13911863718 11515922698
33d3631a6 2ae67090a
Different! 11515922698 1894374164
2ae67090a 70e9db14
Different! -1337045376 -19443360723
-4fb1b180 -486ea23d3
Different! 7529783568 1206462605
1c0cf6110 47e9288d
Different! 1206462605 -11012111612
47e9288d -2905f7cfc
Different! -11367307134 -8968669495
-2a58b577e -216930937
Different! -8968669495 -6522561656
-216930937 -184c66478
Different! -6522561656 5402317640
-184c66478 14200d348
Different! -19319631267 16491819753
-47f8a2da3 3d6fd32e9
Different! 16491819753 5353269666
3d6fd32e9 13f1469a2
Different! 17332986983 6488638431
409206467 182c0c3df
Different! 6488638431 17778605965
182c0c3df 423afff8d
Different! 17778605965 12435401099
423afff8d 2e535298b
Different! -20697297929 14283907615
-4d1a7b409 35363221f
Different! -1747697513 -16697544376
-682bbf69 -3e3404eb8
Different! -16849344428 244098297
-3ec4c97ac e8ca4f9
Different! 244098297 16734506406
e8ca4f9 3e5744da6
Different! 16734506406 431362289
3e5744da6 19b610f1
Different! 431362289 -6863273948
19b610f1 -199153fdc
Different! -6863273948 -9491773042
-199153fdc -235c0f672
Different! -9491773042 16237144327
-235c0f672 3c7cf2907
Different! -12262429095 -4726949439
-2dae5d1a7 -119bf863f
Different! -14693457456 11190052330
-36bcc5e30 29afaa5ea
Different! -12106319142 13726852913
-2d197c526 3322f2731
Different! -4400515878 -2612997255
-1064a8b26 -9bbf2c87
Different! -2612997255 8942383260
-9bbf2c87 21501f09c
Different! 8942383260 7527173251
21501f09c 1c0a78c83
Different! 7527173251 257094978
1c0a78c83 f52f542
Different! 1370152690 -10757407564
51aadef2 -28131034c
Different! -10757407564 -5672041340
-28131034c -152147b7c
Different! -5672041340 10752406861
-152147b7c 280e4b54d
Different! 19579867889 14793658819
48f0d12f1 371c551c3
Different! 14793658819 7134715139
371c551c3 1a9431d03
Different! 7134715139 14202510422
1a9431d03 34e891c56
Different! -1425975510 6502665434
-54fea8d6 18396ccda
Different! 6502665434 -17263240626
18396ccda -404f825b2
Different! -17263240626 16532510411
-404f825b2 3d96a16cb
Different! -19986161868 -14656476521
-4a744a0cc -369981569
Different! -17619425255 3541872113
-41a3317e7 d31cadf1
Different! 12798562583 14269947784
2fada9117 3528e1f88
Different! 1282653116 2800886119
4c73bbbc a6f22167
Different! 7755013171 -22803560
1ce3c1c33 -15bf468
Different! 18522189578 7187054367
450022f0a 1ac61bf1f
Different! 7187054367 -14535723773
1ac61bf1f -362658afd
Different! -1638760085 -15878787325
-61ad7e95 -3b27310fd
Different! -15878787325 -18936223004
-3b27310fd -468afd51c
Different! -18936223004 7140057235
-468afd51c 1a994a093
Different! 7519356290 -9335743017
1c0304582 -22c742229
Different! -9335743017 -3303601059
-22c742229 -c4e8f3a3
Different! -11902869914 -9342640185
-2c577619a -22cdd6039
Different! -4410412506 3508703753
-106e18dda d1229209
Different! 3508703753 -9299139443
d1229209 -22a459b73
Different! -17265030827 2301449906
-4051376ab 892d56b2
Different! -16370352346 17592764209
-3cfbfc0da 4189c4731
Different! 17592764209 -12153475917
4189c4731 -2d467534d
Different! -12153475917 -13500421012
-2d467534d -324b01394
Different! -13500421012 12292828925
-324b01394 2dcb5aefd
Different! 16187936469 -8709770180
3c4e04ed5 -207248bc4
Different! -8709770180 -2683022676
-207248bc4 -9febad54
Different! -2683022676 -19009241598
-9febad54 -46d0a01fe
Different! -19009241598 -3493101918
-46d0a01fe -d034815e
Different! -3493101918 14549010087
-d034815e 3633046a7
Different! -9507909542 15150345969
-236b72fa6 38707eef1
Different! 16324029402 4611514108
3ccfcebda 112de1efc
Different! 4611514108 11940549681
112de1efc 2c7b65431
Different! 11940549681 17906934702
2c7b65431 42b5623ae
Different! 9881646236 11644303223
24cfdf49c 2b60df777
Different! -20588194813 9946914036
-4cb26ebfd 250e1dcf4
Different! 9946914036 6932932401
250e1dcf4 19d3c2731
Different! 6932932401 13600135401
19d3c2731 32aa198e9
Different! 13600135401 4285368797
32aa198e9 ff6d89dd
Different! 19970326976 14919341258
4a65301c0 3794314ca
Different! -5409576543 -11991481069
-1426f965f -2cabf7aed
Different! -11991481069 -9465125474
-2cabf7aed -2342a5a62
Different! -17496267615 -16928928428
-412dbdb5f -3f10af2ac