假设我有数据 1,2,3,4,5,6
我想对这些数据进行排序,使其输出 6 1 5 2 4 3
通过这种方式,数字匹配,以便低数字与高数字配对
我会使用合并排序按数字顺序对其进行排序,然后拆分列表并根据此条件匹配它们吗?
我正在尝试对从数据文件中读取的字符串网格中的实数数据进行排序;我有一个按数字顺序对这些数据进行排序的工作程序,但我不确定如何对其进行编码,以便按照高、低、高、低进行排序
这是我的网格排序的代码
procedure TForm1.SortGrid(Grid: TStringGrid; const SortCol: Integer;
//sorting the string grid
const datatype: Integer; const ascending: boolean);
var
i: Integer;
tempgrid: TStringGrid;
list: array of Integer;
begin
tempgrid := TStringGrid.create(self);
with tempgrid do
begin
rowcount := Grid.rowcount;
ColCount := Grid.ColCount;
fixedrows := Grid.fixedrows;
end;
with Grid do
begin
setlength(list, rowcount - fixedrows);
for i := fixedrows to rowcount - 1 do
begin
list[i - fixedrows] := i;
tempgrid.rows[i].assign(Grid.rows[i]);
end;
Mergesort(Grid, list, SortCol + 1, datatype, ascending);
for i := 0 to rowcount - fixedrows - 1 do
begin
rows[i + fixedrows].assign(tempgrid.rows[list[i]])
end;
row := fixedrows;
end;
tempgrid.free;
setlength(list, 0);
end;