看看我的堆排序,哪里有错呢?

vaqeteart
看看我的堆排序,哪里有错呢?

代码如下:
[table=95%][tr][td][font=FixedSys][color=#000000][color=#0000FF]void[/color] myHeapFix[color=#0000CC]([/color][color=#0000FF]int[/color] [color=#0000CC]*[/color]a[color=#0000CC],[/color] [color=#0000FF]int[/color] [color=#FF0000]left[/color][color=#0000CC],[/color] [color=#0000FF]int[/color] [color=#FF0000]right[/color][color=#0000CC])[/color]
[color=#0000CC]{[/color][color=#FF9900]//a is heap except the position left,then adjust it to a heap
[/color]
        [color=#0000FF]int[/color] i [color=#0000CC]=[/color] [color=#FF0000]left[/color] [color=#0000CC]+[/color] [color=#FF0000]left[/color] [color=#0000CC]+[/color] 1[color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#FF9900]//for(i = left; i < right;
[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000FF]int[/color] temp [color=#0000CC]=[/color] a[color=#0000CC][[/color][color=#FF0000]left[/color][color=#0000CC]][/color][color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000FF]while[/color][color=#0000CC]([/color]i [color=#0000CC]<[/color] [color=#FF0000]right[/color][color=#0000CC])[/color][color=#FF9900]//2(i+1) -1,2(i+1)+1 -1
[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]{[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[color=#0000CC][[/color]i[color=#0000CC]][/color] [color=#0000CC]>[/color] a[color=#0000CC][[/color]i[color=#0000CC]+[/color]1[color=#0000CC]][/color][color=#0000CC]?[/color] a[color=#0000CC][[/color][color=#0000CC]([/color]i[color=#0000CC]+[/color]1[color=#0000CC])[/color][color=#0000CC]/[/color]2[color=#0000CC]-[/color]1[color=#0000CC]][/color] [color=#0000CC]=[/color] a[color=#0000CC][[/color]i[color=#0000CC]][/color][color=#0000CC],[/color]i[color=#0000CC]=[/color]i[color=#0000CC]+[/color]i[color=#0000CC]+[/color]1[color=#0000CC]:[/color]a[color=#0000CC][[/color][color=#0000CC]([/color]i[color=#0000CC]+[/color]1[color=#0000CC])[/color][color=#0000CC]/[/color]2[color=#0000CC]-[/color]1[color=#0000CC]][/color] [color=#0000CC]=[/color] a[color=#0000CC][[/color]i[color=#0000CC]+[/color]1[color=#0000CC]][/color][color=#0000CC],[/color]i[color=#0000CC]=[/color]i[color=#0000CC]+[/color]i[color=#0000CC]+[/color]3[color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]}[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000FF]if[/color][color=#0000CC]([/color]i [color=#0000CC]=[/color][color=#0000CC]=[/color] [color=#FF0000]right[/color][color=#0000CC])[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]{[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[color=#0000CC][[/color][color=#0000CC]([/color]i[color=#0000CC]+[/color]1[color=#0000CC])[/color][color=#0000CC]/[/color]2[color=#0000CC]-[/color]1[color=#0000CC]][/color][color=#0000CC]=[/color]a[color=#0000CC][[/color]i[color=#0000CC]][/color][color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i [color=#0000CC]=[/color] i [color=#0000CC]+[/color] i [color=#0000CC]+[/color] 1[color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]}[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i [color=#0000CC]=[/color] [color=#0000CC]([/color]i[color=#0000CC]+[/color]1[color=#0000CC])[/color][color=#0000CC]/[/color]2[color=#0000CC]-[/color]1[color=#0000CC];[/color]

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#FF9900]//a[left] = temp;
[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000FF]while[/color][color=#0000CC]([/color]i [color=#0000CC]>[/color] [color=#FF0000]left[/color][color=#0000CC])[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]{[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000FF]if[/color][color=#0000CC]([/color]temp [color=#0000CC]>[/color] a[color=#0000CC][[/color][color=#0000CC]([/color]i[color=#0000CC]+[/color]1[color=#0000CC])[/color][color=#0000CC]/[/color]2[color=#0000CC]-[/color]1[color=#0000CC]][/color][color=#0000CC])[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]{[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[color=#0000CC][[/color]i[color=#0000CC]][/color][color=#0000CC]=[/color]a[color=#0000CC][[/color][color=#0000CC]([/color]i[color=#0000CC]+[/color]1[color=#0000CC])[/color][color=#0000CC]/[/color]2[color=#0000CC]-[/color]1[color=#0000CC]][/color][color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i [color=#0000CC]=[/color] [color=#0000CC]([/color]i[color=#0000CC]+[/color]1[color=#0000CC])[/color][color=#0000CC]/[/color]2[color=#0000CC]-[/color]1[color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]}[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000FF]else[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]{[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000FF]break[/color][color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]}[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]}[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[color=#0000CC][[/color]i[color=#0000CC]][/color] [color=#0000CC]=[/color] temp[color=#0000CC];[/color]
[color=#0000CC]}[/color]
[color=#0000FF]void[/color] myHeapSort[color=#0000CC]([/color][color=#0000FF]int[/color] [color=#0000CC]*[/color]a[color=#0000CC],[/color] [color=#0000FF]int[/color] [color=#FF0000]left[/color][color=#0000CC],[/color] [color=#0000FF]int[/color] [color=#FF0000]right[/color][color=#0000CC])[/color]
[color=#0000CC]{[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000FF]int[/color] i [color=#0000CC]=[/color] [color=#0000CC]([/color][color=#FF0000]right[/color] [color=#0000CC]+[/color] 1[color=#0000CC])[/color] [color=#0000CC]/[/color] 2 [color=#0000CC]-[/color] 1[color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000FF]for[/color][color=#0000CC]([/color][color=#0000CC];[/color]i [color=#0000CC]>[/color][color=#0000CC]=[/color] [color=#FF0000]left[/color][color=#0000CC];[/color] [color=#0000CC]-[/color][color=#0000CC]-[/color]i[color=#0000CC])[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]{[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myHeapFix[color=#0000CC]([/color]a[color=#0000CC],[/color]i[color=#0000CC],[/color][color=#FF0000]right[/color][color=#0000CC])[/color][color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]}[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000FF]int[/color] temp [color=#0000CC]=[/color] a[color=#0000CC][[/color][color=#FF0000]left[/color][color=#0000CC]][/color][color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[color=#0000CC][[/color][color=#FF0000]left[/color][color=#0000CC]][/color] [color=#0000CC]=[/color] a[color=#0000CC][[/color][color=#FF0000]right[/color][color=#0000CC]][/color][color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[color=#0000CC][[/color][color=#FF0000]right[/color][color=#0000CC]][/color] [color=#0000CC]=[/color] temp[color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]-[/color][color=#0000CC]-[/color][color=#FF0000]right[/color][color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000FF]for[/color][color=#0000CC]([/color][color=#0000CC];[/color] [color=#FF0000]right[/color] [color=#0000CC]>[/color][color=#FF0000]left[/color][color=#0000CC];[/color] [color=#0000CC]-[/color][color=#0000CC]-[/color][color=#FF0000]right[/color][color=#0000CC])[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]{[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myHeapFix[color=#0000CC]([/color]a[color=#0000CC],[/color][color=#FF0000]left[/color][color=#0000CC],[/color][color=#FF0000]right[/color][color=#0000CC])[/color][color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp [color=#0000CC]=[/color] a[color=#0000CC][[/color][color=#FF0000]left[/color][color=#0000CC]][/color][color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[color=#0000CC][[/color][color=#FF0000]left[/color][color=#0000CC]][/color] [color=#0000CC]=[/color] a[color=#0000CC][[/color][color=#FF0000]right[/color][color=#0000CC]][/color][color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[color=#0000CC][[/color][color=#FF0000]right[/color][color=#0000CC]][/color] [color=#0000CC]=[/color] temp[color=#0000CC];[/color]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#0000CC]}[/color]
[color=#0000CC]}[/color]
[/color][/font][/td][/tr][/table]

vaqeteart
看来没有人回答呢

converse
[url]http://www.cppblog.com/converse/archive/2007/03/20/20175.html[/url]