回答
简单地以线性方式遍历数组。为最小值保留一个变量,为最大值保留一个变量。初始化为数组中的第一个值。然后,对于每个元素,如果该元素分别小于或大于最小值或最大值,则更新最小值或最大值。
minval := a[0];
maxval := a[0];
for i := 1 to Count-1 do
begin
if a[i]<minval then
minval := a[i]
else if a[i]>maxval then
maxval := a[i];
end;
很明显,这段代码假设Count> 0。
请注意,您可以同样使用Math单元中的MinValue和MaxValue例程。
迭代遍历数组,比较先前找到的最小值和最大值。
这是一段代码片段。澄清之后,我编辑了使用Int64的代码。
Min := High(Int64);
Max := Low(Int64);
for ThisNumber in MyArray do
begin
if ThisNumber < Min then
begin
Min := ThisNumber;
end
if ThisNumber > Max then
begin
Max := ThisNumber;
end;
end;
很有趣的是,在MaxIntValue作为Math.pas实现:
function MaxIntValue(const Data: array of Integer): Integer;
var
I: Integer;
begin
Result := Data[Low(Data)];
for I := Low(Data) + 1 to High(Data) do
if Result < Data[I] then
Result := Data[I];
end;
此实现,类似于大卫的回答,使用第一个数组值作为初始值。这假定数组至少有一个元素。还要注意,循环可以从Low(Data)+ 1开始并保存一个不必要的比较。对于您所描述的数据,每个阵列中有100个元素,最多可以提高1%的速度。
如果性能并不重要,MinIntValue和MaxIntValue会更加简洁。如果你推出自己的游戏,那么你只是遍历数组而不是两次。
谢谢大卫,格式。 –
不是我的数组是int64 .. –
现在代码更改为Int64。 –
- 1. 如何在数组中找到最大和最小数字c
- 2. 如何找到一个数组的最大值和最小值
- 3. 如何查找数组中的最大和最小日期?
- 4. 从数组中的2个数字中找出最大和最小数字
- 5. 如何在随机整数数组中找到最小和最大的元素?
- 6. 如何查找循环中最小和最大的数字?
- 7. 如何查找数组的最小和最大元素?
- 8. 从数组中找到最小值和最大值,php
- 9. 如何从数组中找到最大的gameobject大小?
- 10. 如何查找数组中的最大负数和最小正数
- 11. Java - 查找字符串数组的最小值和最大值
- 12. 如何使用awk查找最大和最小的数字?
- 13. 如何在Perl中查找整数数组中的最大值和最小值?
- 14. AWK找到最小和最大的数组
- 15. 最小和最大值不是数组中的数字
- 16. 查找最大和最大的数字
- 17. 如何从浮点数组中找到最小值和最大值?
- 18. Python:我如何在子数组元素中找到最小值和最大值?
- 19. 查找具有最大和最小元素数的数组
- 20. 用数组找到和,最小值,最大值
- 21. 如何找到数组java中最大的三个数字?
- 22. 如何找到一个数组中最大的数字
- 23. AS3 - 如何在数组中找到两个最大的数字
- 24. 查找元组(数据库)中的最小值和最大值
- 25. 查找五次数组中的最大值和最小值
- 26. 数组的最小值和最大值?
- 27. 数组的最大值和最小值
- 28. 最小和最大的多维数组
- 29. 如何找到一个二维数组的最大值和最小值
- 30. 查找关联数组的最小和最大键和值php
我想我们在同一时间打字!我更喜欢你的初始化,但我更喜欢更紧凑的for..in结构,虽然它取决于他是否支持Delphi的哪个版本。 –
+1对于'MinValue'和'MaxValue'。还有['MinIntValue'](http://docwiki.embarcadero.com/VCL/en/Math.MinIntValue)和['MaxIntValue'](http://docwiki.embarcadero.com/VCL/en/Math)。 MaxIntValue)。 – NGLN
@ngln谢谢你,你当然是对的,我习惯使用浮点数据。 –