上海交通大学的报名系统有bug,要是谁的信息已提交,而又想改一下的,可以留言问我,这里就不说了,也希望交大能尽快的改掉这个bug。
隔壁的班级正在放英语电影,有点怀念班级体,可是,我的座位彻底没有了。
上海交通大学的报名系统有bug,要是谁的信息已提交,而又想改一下的,可以留言问我,这里就不说了,也希望交大能尽快的改掉这个bug。
隔壁的班级正在放英语电影,有点怀念班级体,可是,我的座位彻底没有了。
这个不是转载,是我自己的感觉。
看来真的有点,有时都有点恍惚了。
虽然很早就会使用qosrt了,在使用的过程中也没有任何问题,今天发现还是有很大问题的,在这里集中说一下
1.最原始的代码:
procedure quicksort(var b:arr; s,t:integer);
var i,j,x,t1:integer;
begin
i:=s;j:=t;x:=b[i];
repeat
while (b[j]>=x) and (j>i) do j:=j-1;
if j>i then begin t1:=b[i]; b[i]:=b[j];b[j]:=t1;end;
while (b[i]<=x) and (i<j) do i:=i+1;
if i<j then begin t1:=b[j];b[j]:=b[i];b[i]:=t1; end
until i=j;
b[i]:=x;
i:=i+1;j:=j-1;
if s<j then quicksort(b,s,j);
if i<t then quicksort(b,i,t);
end;
——————————————-
2.我经常使用的代码:
procedure qsort(s,t:longint);
var i,j,x:longint;
begin
i:=s;j:=t;x:=a[i];
repeat
while (i<j)and(x<=a[j])do dec(j);
if i<j then begin
a[i]:=a[j];
inc(i);
end;
while (i<j)and(a[i]<=x)do inc(i);
if i<j then begin
a[j]:=a[i];
dec(j);
end;
until i=j;
a[i]:=x;
if s<i-1 then qsort(s,t-1);
if i+1<t then qsort(i+1,t);
end;
——————————————-
3.这个是今天lccycc给我的qsort代码,相当快了,正常可以过50W的数据,而且我也过了,但是再测就不好使了,30W过的比较轻松!
而且据我观察比C++的qsort快,比STL的sort还快,估计是C++文件操占用的比较多作看来pascal也不一定什么都比C差,^_^
procedure sqort(l,h:longint);
var i,j,k,code:longint;
begin
i:=l;j:=h;k:=a[(l+h) div 2];
while I<j do
begin
while a[i]<k do inc(i);
while a[j]>k do dec(j);
if i<=j then
begin
code:=a[i];a[i]:=a[j];a[j]:=code;
inc(i);dec(j);
end;
end;
if i<h then sqort(i,h);
if j>l then sqort(l,j);
end;
原来一个简单的快排有这么大的区别,程序是否垃圾也其了很大影响,但是编程水平不是一朝一夕就可以成就的,以后要注意!!