归并排序疑问

来源:互联网 发布:电脑编程入门自学黑客 编辑:程序博客网 时间:2024/05/17 04:22

奇怪的是,输入没有0,输出却含有0。导致一直不能ac。
测试用例如下:
1000
-946253604
683706648
-830617434
998726113
201345208
-278672123
-774829311
-160533558
97445670
-861252862
-827172369
-411857705
588283872
644157278
669164105
845577553
-90568256
-338419405
862204886
-961775957
84223746
163497662
524633087
174907643
629911314
-403116414
918399982
76888846
-137151829
129667141
-761507481
322263424
805197800
493657013
822013863
-48555248
827456734
767637833
625797962
33749116
-308730737
615374183
-28218495
-34937975
-788421258
-609602201
-952969246
-460558234
122899173
384610182
-790343631
78290005
482025049
938221962
874299606
-109751267
-840926440
-5525078
-631185201
-395538379
-197072106
148281843
976618271
967778529
900254619
-149435794
-217055505
-905373141
822143414
-282280648
-981879182
141793910
35782632
-171544230
346954780
468849563
-808283844
-440428938
-36671099
239513515
-450147168
378958215
953989673
478237989
-79989228
160202513
840238375
866975838
619357406
-68234871
-207628808
-167018188
398823034
21336340
-769178779
542987420
638755911
4002976
64807406
361014536
607453304
952403894
-282701649
-594820179
366489363
67862458
-957492628
-346430722
-408732819
-594549958
-301467424
599502498
-968853979
129301284
-945391211
423969679
194292169
-501619718
47767756
-259947895
10325830
-84031344
-524730548
-109621715
925348159
185139006
742970876
-985553708
-402365451
803967360
830093651
187713180
494763656
602314364
632060210
-402551063
-338340136
548809852
-888251375
852148313
117695141
186669096
275708656
213907364
-766767448
192868694
-198164210
-730478250
-33272449
-193148459
-651304750
140375629
956235219
-675244700
-649311295
-308515353
477134441
826920065
-520168339
-818649644
324891581
-971938920
-944065271
-212700179
-424643610
510819396
-895261159
-571168344
497241073
457159851
-237690185
645482317
-613368344
195619443
622356964
823656733
640260000
261362088
-342854267
-267520535
-616696785
473449125
47718740
790783007
455272109
-310281978
231477960
170008355
251625659
-59424437
120314496
-165260202
68978190
930398268
-472743268
89634060
130734367
-511591166
-361449027
-277586845
88129852
-626995867
-227719323
509567700
-955458274
-296787067
-246256028
-239384224
-297601664
-472968029
51224646
-784227647
169774332
747352195
798047141
851442456
-19657660
-734848279
332027711
885638368
-720658564
-65269514
177205997
-443334491
-663154645
927570017
-423495874
-543766612
-331637290
-467277097
-307077634
151851165
-377188886
934732577
644349613
-989700919
-298831552
538151040
746241280
-247940824
935974049
-529137817
-532389982
-275406312
889350917
-95457858
664965465
321625995
-867648873
-324185725
-890708280
-134417354
156381123
-247087395
-556928281
-846600634
195798136
-784384832
172722344
-883028291
-873291194
-702489416
-907746935
-830324567
834109605
899373481
592961238
235041754
-896997418
787748059
150274008
442191299
-481089560
-420031466
949664318
808479252
-532879533
-547387692
-332685408
432303212
-737395449
254878131
-676117740
992548434
-576568817
827339719
995470042
869898509
491660858
490950247
-185499055
-514446721
-634571305
629269570
-374649630
638463464
-621390882
-702065415
-109515918
989977436
311580904
-570076290
218623412
-655396932
525540267
-332899580
-653327795
-423587412
-196751714
-365407533
686278898
-256814173
548300576
740419132
854367158
-128169325
973628324
-900295370
746244249
-993230115
903903438
723062729
743380896
-387947665
-26752886
-335279272
76762604
-110359131
954618164
-688799146
429870133
-830814118
562128226
-322662845
-879277693
832680840
-963745282
979279192
-532991833
756330762
480667514
419057453
66650222
-142931610
804671348
-928684883
-62747297
-374990437
774902412
753519695
664835139
-721095513
-448309665
-116285803
-913926003
588518175
-313457187
-393428924
371355954
-139180461
590337816
457031335
-378205576
-507952568
204722333
517093015
181057601
-129036580
619696824
-978313683
-164424044
994349132
632696463
989913486
-473897630
-515154016
-343587494
-113687495
-192619014
-98068004
727468024
-548246960
114738457
-798901531
-353634286
150965646
617495546
-321585972
-408736842
-467795868
146138026
429683642
-392076763
606188627
-834007054
-976363821
-202736971
-425397210
652346057
-712421667
-109742485
-933710717
5312738
753216095
-82056262
670486007
-353791977
-438223152
-642388174
601228012
-67894332
800230308
799190089
-530576043
133351514
138584775
-657707122
-579304045
845681717
-946243314
899597468
-497356427
-720299739
87492691
-124451710
405892314
386425894
-973492165
823920540
-497533809
687582955
-918190284
233966447
-480197347
-988325519
661178741
446440302
361522362
283154730
-24120294
-495242378
55718698
-679197799
-9964854
600098464
345907718
630493552
-861500720
-527162887
27408170
681343301
-623432926
-271078928
598589370
-612019136
-612386058
786589021
917820046
-122332196
512051424
-715939887
-380299812
-262143692
855145635
913645056
-149704049
-433736140
279387436
-542250525
472172773
692144472
-19229485
137541224
-130197990
548999064
-156121230
-818158629
289665115
487394227
529640571
775398761
247926613
553670722
-203487631
-178877110
311015881
352888643
635377077
-868178212
624060539
874589719
528620255
-516145443
771103305
-308180407
885057434
-682137611
-534343434
76390089
-250197488
-220356142
-648893885
680749804
664339
335263698
-299427215
239025849
859119062
-950409694
544102093
-794227430
-503076094
-569574181
348027232
736652662
36133499
66029465
941343938
34022744
-397370825
497407308
-69113217
147565647
-166311064
597583053
-836475783
-503084042
366437919
-822017583
663941630
-473983620
716184805
-786724974
-262408286
-250003287
424292646
567176809
-446993618
461248671
-879449895
-928009969
493769581
585786770
-412280306
418287968
377665813
98194436
135827324
-965549358
655686094
-180972031
-623481550
431633822
-526239087
252395203
848757075
203540468
-152939133
403081286
171739481
-796343173
872587930
681136645
-614351324
18085713
-510412235
-716351121
692834104
-401969481
-687639984
468956690
-486976918
-519904733
-86527362
-469360857
-996362273
345100012
-440154048
415400967
-780082761
65329780
361088633
331987276
-477703678
-155086340
-850502070
-715449018
739514113
485196511
-98760362
-779247823
-279884059
149925096
-710490810
916893278
-800597899
812632935
200138094
569633981
-71299797
94016934
405360332
-462203195
722090626
-813270596
-693995114
896423183
-481838817
943121769
248757476
-496342938
-356305485
431659900
183164046
-893590300
-157431807
-459399347
158840322
540735015
-131412217
-794963218
-455865234
-792362407
696790880
-908392162
-251159252
363097985
-809413923
-3420640
-668762958
-808995209
-855038083
-9788030
-513299236
125900305
659969447
-176708173
609896650
-664433082
-461091226
-746925254
766389799
796392343
-763560966
-602417425
577057662
288456041
966761049
-816900511
74325084
658801447
-346207387
659403079
-298953802
-276336580
-450117832
197722739
-158994075
630482787
437888655
-57093100
705837106
521581822
611884726
57752685
-641304856
653482545
-55040864
-942736259
-553559748
-980723634
-69295997
-176726597
1826241
-384486964
-561353017
-252257578
971198558
299208304
-485449824
460384707
396336936
-992513413
922254276
-327564405
537212177
-514441162
-710834229
763037343
-423981863
-537753292
982285901
979413863
-102321738
596001873
-452762360
-755192024
-815492384
178686349
-961112570
923575117
-656503096
909497308
736659237
55048717
-271902557
830519209
-342423163
-914466838
-714983563
802139745
226524180
541797620
115932610
977503947
546569964
698350518
599327546
-60550869
520540507
873136306
364316773
181921792
481245604
984193543
-963009536
-48709860
925595140
405824367
-931724605
-806160993
-436765195
-207487791
260320873
-409024941
116887802
486839627
-729172650
-132794442
944338151
706692968
827982000
-796367391
478020906
-226121609
235722528
-559511720
-136518748
-79825685
-950568092
-151112879
-354519570
245058484
658145841
-834248876
-440741657
161575112
-571748296
752465693
18058252
776807303
904924068
251752470
-982742234
-908822570
238904940
-565988030
-718523253
-475042450
-139383855
-940269663
427523168
-267878013
-4889020
813847538
-954845695
160684164
703900886
-292632788
-251528985
596502183
-912191113
5420825
356392458
219388274
548358577
318176320
134366367
94569748
-968283285
955312690
58587923
-481638343
849147305
-832469153
801768899
-423770470
-813625158
386843476
534973450
-198289443
-840988467
-661476299
-940441831
989701571
421363953
913358442
-750052496
844298303
-879403181
398574179
457674225
720884491
3994677
421556069
688998415
-100496758
895360011
-202130508
-457181148
920728620
299645603
186906998
-506759165
-94696546
1142413
-90838489
-117025319
-172419868
-987921361
468924774
-25690679
-682942590
172393762
946760457
437490650
749285185
-54137345
366690886
798024320
635000134
68228816
290068064
-26027071
-366857465
-502361535
337703431
514366979
-572408764
-521467569
-97734343
-319130481
388505349
-155975377
614244830
502064954
-27895466
845282866
154254715
-11440842
-487797559
30383760
422367371
832219663
-348327955
-575735143
140616815
-451509271
57234219
984065419
939713230
953640586
-471330876
-154829
-92181282
-147500197
-990422462
-787065931
860098299
-592335011
663438982
394794531
-544616555
-650952299
109812981
-211944745
585803972
473032787
558148931
-555304497
-534613885
904002319
791607940
-621868272
285821878
-395383626
645861444
457848400
-677699116
-791122322
357021650
-210787298
-542867241
-556474183
-461180799
-51374930
-847799606
-611339823
936205904
-238254974
492487415
-240829535
985184567
-253410274
325120175
117407910
-424999685
73319670
-277593319
863616789
-161539115
667584027
-9658203
-387461284
518679303
-964289089
-837967354
-849462605
714023292
-696797656
206638359
-448270862
890633185
651220621
50643339
-125773721
-62338228
-988142373
810228499
-838812089
-364145139
197143794
536826882
-203596096
-47791912
706215649
918817752
45018214
53011552
-831586032
-970383942
-427458226
-264558282
-541315906
370416792
689437622
798870904
844594043
-75153487
-496891710
-213407576
-998337002
-325363116
633003560
555106667
-59241723
-131462720
-666036055
695946386
-549106105
-820253862
-436857313
263091170
-438781230
227761928
641317090
-869242855
-806062107
660330627
812463654
-883106841
117014431
97525842
545609324
-726413715
-365903416
816287419
431949090
-719196172
361205717
75355375
93067728
87011114
307120209
374595487
-365808138
-477493091
903823321
241297237
-988550189

所用代码如下

/**归并排序*/#include <iostream>#include <cstring>using namespace std;void merge_sort(int *a, int len){    int start1=0,end1=0,start2=0,end2=0;    int* b = new int[len];    for(int seg=1;seg<len;seg+=seg){        for(int i= 0;i<len;){            start1 = i;            end1 = min(start1+seg-1,len);            start2 = end1+1;            end2 =min(seg+start2-1,len);            while(start1<=end1 && start2<=end2){                b[i++] = a[start1]<a[start2]?a[start1++]:a[start2++];            }            while(start1<=end1)                b[i++] = a[start1++];            while(start2<=end2)                b[i++] = a[start2++];        }        memcpy(a,b,sizeof(int)*len);     }    memcpy(a,b,sizeof(int)*len);    delete [] b;}int main(){    int i;    cin>>i;    int *a = new int[i];    for(int t=0;t<i;++t){        cin>>a[t];    }    merge_sort(a,i);    for(int t=0;t<i;++t){        cout<<a[t];    }    return 0;}
原创粉丝点击