简单的逻辑问题:找到3个数字中最大和最小的数字

new*_*bie 4 language-agnostic logic

我正在创建一个伪代码来确定3个数字中最小和最大的数字:

我的代码如下:

If (x >= y)  
   largest = x
   Smallest = y
Else 
    largest = y
    Smallest =x

If (z >= largest)
    Largest = z
If (z <= smallest)
    Smallest = z
Run Code Online (Sandbox Code Playgroud)

你认为这是对的吗?还是有更好的方法来解决这个问题?

dar*_*ioo 8

假设你有任意数字x, y, z.

伪代码:

largest = x
smallest = x

if (y > largest)  then largest = y
if (z > largest)  then largest = z

if (y < smallest) then smallest = y
if (z < smallest) then smallest = z
Run Code Online (Sandbox Code Playgroud)

如果您只使用变量,赋值,if-else和比较,这是解决问题的一种方法.


如果您有阵列和定义的排序操作,您可以使用:

array = [x, y, z]
arrays.sort()
largest  = array[2]
smallest = array[0]
Run Code Online (Sandbox Code Playgroud)

如果你有一个maxmin函数,它接受数字数组作为参数,您可以使用此:

array = [x, y, z]
largest  = max(array)
smallest = min(array)
Run Code Online (Sandbox Code Playgroud)

如果您还使用集合进行位置分配,则可以使用:

array = [x, y, z]
(largest, smallest) = (max(array), min(array))
Run Code Online (Sandbox Code Playgroud)

如果您有一个数据结构,可以在插入元素时对其内容进行排序,您可以使用:

array.insert([x, y, z])
smallest = array[0]
largest = array[2]
Run Code Online (Sandbox Code Playgroud)

  • @Lukas:我想说无论哪种方式都是 O(1) :) (2认同)