RAD Studio 10.2.3 测试√
耗时基本都是将内容输出到Memo中的耗时
var
mArr: TArray<Integer>;
i, j: Integer;
mTempi: Integer;
mTime: TDateTime;
begin
GenerateRandomArray(mArr, 100, 8, True);
Memo_Log.Lines.Add('<=====原始顺序=====');
ArrToMemo(mArr);
Memo_Log.Lines.Add('=====原始顺序=====>');
mTime := Now;
// 注意:在遍历的时候,需要注意越界的问题
// 注意:在遍历的时候,需要注意越界的问题
// 注意:在遍历的时候,需要注意越界的问题
// 从第2个值开始遍历所有值
for i := 1 to Length(mArr) - 1 do
begin
// 将从下标为 j 开始的值,与其前面的值进行比较,一直到找到对应的位置 跳出
for j := i downto 1 do
begin
if mArr[j - 1] > mArr[j] then
begin
mTempi := mArr[j];
mArr[j] := mArr[j - 1];
mArr[j - 1] := mTempi;
ArrToMemo(mArr);
end
else
begin
// 前面的数据都已经是按照顺序排好的,如果在这里不用调换位置了,直接跳出本次循环
Break;
end;
end;
end;
Memo_Log.Lines.Add('排序耗时 ' + IntToStr(MilliSecondsBetween(Now, mTime)) + ' 毫秒');
Memo_Log.Lines.Add('<=====插入排序后顺序=====');
ArrToMemo(mArr);
Memo_Log.Lines.Add('=====插入排序后顺序=====>');
end;
一点点笔记,以便以后翻阅。