2

因此,问题标题几乎说明了一切。

遍历编号变量列表并找出哪个变量包含最大数字的最有效方法是什么。

如果没有 20 行代码,我不知道如何做到这一点,所以我将编写一些示例代码:

@echo off
for /l %%i in (1,1,10) do set /p var_%%i=Insert number: 
::code here that finds out which variable is larger...
echo The largest number is... %largest_number%
4

2 回答 2

2
@echo off
setlocal EnableDelayedExpansion
for /l %%i in (1,1,10) do set /p "var_%%i=Insert number %%i: "
set largest_number=%var_1%
for /l %%i in (2,1,10) do if !var_%%i! gtr !largest_number! set largest_number=!var_%%i!
echo The largest number is... %largest_number%
于 2013-11-12T06:55:17.470 回答
1

这个问题最有效的解决方案总是线性时间复杂度,即O(n). 这是因为没有真正的方法来分治这个任务,因为必须检查所有元素,至少要求O(n)时间复杂度。

以下批处理程序将使用数字和字母演示此任务。

@echo off
setlocal enabledelayedexpansion
set max=0
for %%A in (1,2,99,3,4) do (
  set n=%%A
  if !n! GTR !max! set max=!n!
)
echo Greatest number: %max%

set max=0
for %%A in (A,C,B,Z,G) do (
  set n=%%A
  if !n! GTR !max! set max=!n!
)
echo Greatest letter: %max%
于 2013-11-12T06:37:06.657 回答