(a[i], '' ); write(a[n]); {防止多输出空格使程序结果出错} end . 堆排序 var a: array [1 .. 100 ] of longint; n,i,b:longint; procedure jianshu(i:longint); begin while ((a[i]>a[i* 2 ]) or (a[i]>a[i* 2+1 ])) and (i<=n div 2) do {当父亲数大于子女数时并且他有孩子时进行} begin NOIP 算法总结山东省广饶一中杨庆礼 10 if a[i* 2 ]<=a[i* 2+1]{左儿子小于右儿子} then begin b:=a[i* 2 ]; a[i* 2 ]:=a[i];a[i]:=b; {左右儿子的值互换} jianshu(i* 2 );{继续为左儿子建树} end else begin b:=a[i* 2+1 ];a[i* 2+1 ]:=a[i];a[i]:=b; jianshu(i* 2+1 );{上同,不过是为右儿子建树} end ; end ; end ; procedure tiao; begin while n<> 0 do begin write(a[ 1 ]); a[1 ]:=a[n]; n:=n- 1; for i:=(n div 2) downto 1 do jianshu(i); end ; end ; begin read(n); for i:= 1 ton do read(a[i]); for i:=(n div 2) downto 1 do jianshu(i); tiao; end . 数学定理中国剩余定理若有一些两两互质的整数 m1, m2, … mn, 则对任意的整数:a 1,a 2,... an, 以下联立同余方程组对模数 m1, m2, … mn 有公解: