请问大家,我现在一个1000000的数组,我想把它们里的内容打乱,而且速度要快,如何实现???请大家帮忙!!!
解决方案 »
- TIdSMTP发送邮件是否可以将发件人地址(显示的地址)换成其他地址?
- 一个combobox绑定多列数据的方法:有个问题要确认
- 急:idUdpServer控件丢包问题
- fastreport 的主丛报表中,按主表记录分页统计第n页/总页数,如何来处理。(急)
- 我下载了条码字体,打印出来的内容扫描枪无法识别。
- 在WIN98下,程序报错“stack overflow”。
- 程序员都改行算了
- 谁写过电视墙程序 发EMAIL给我!
- 那位高手能旁忙,告诉我actionlist控间的使用方法?不胜感激!20分。
- 急急急!!!--这个问题怎样处理?
- 如何判断SQL server2000里的一个表是否存在?如何按月建表?如何在按月分表的数据库中跨月查询数据?
- 新手求助!急急!!!!!
var ii,jj: Integer;
temp: String;
randomize;
for ii:= 0 to 1000000 - 1 do
begin
jj := random(1000000);
temp := arr[ii];
arr[ii] := arr[jj];
arr[jj] := temp;
end;
rec=record
val:extended;
ran:extended;
end;
trecarr=array of rec;
tarr=array of extended;
procedure TForm1.Button1Click(Sender: TObject);
var arr1,arr2:tarr;
recarr:trecarr;
i:integer;
begin
setlength(arr1,1000000);
setlength(arr2,1000000);
setlength(recarr,1000000);
for i:= 1 to 1000000 do
arr1[i-1]:=random(1000000);
for i:=1 to 1000000 do
begin
recarr[i-1].val :=arr1[i-1];
recarr[i-1].ran :=random(1000000);
end;
//这里再自己写一个过程按ran将recarr排序;代码太多了,我不写了,可用冒泡法等。
for i:=1 to 1000000 do
begin
arr2[i-1]:= recarr[i-1].val;
end;
end;