伪代码算法有助于交换/比较值

时间:2015-05-27 10:43:22

标签: algorithm math logic pseudocode

我正在努力解决这个算法问题的解决方案,我正在尝试制作成本估算器,如果有人可以帮助我使用任何伪代码,那将是一个很大的帮助。

  

我有三个输入x,y和z。每个输入都有一个单独的最大值   如果违反则返回错误的值。这些值X = 230 Y = 190   Z = 330。

     

现在我需要一个比较输入值和if的函数   可以交换值以使它们处于约束下。也是Z.   只要交换的值,应始终包含最小值   仍然符合最大值限制。

     

因此,对于一些示例,如果用户输入X = 10,Y = 30,则Z = 30   对于X和Z,将交换以使z成为最低值。 X = 180   Y = 220 Z = 30 X并且Y将被交换以适合最大值。同   X = 100 Y = 120 Z = 50不会交换任何东西。 X = 310 Y = 320 Z = 100无   将被交换,你会得到一个错误。

我希望我已经明确表示任何帮助都会受到高度赞赏。

˚F

1 个答案:

答案 0 :(得分:1)

所以你的代码可能如下:

let a be an array of size 6 containing 3-uplets
let a[1] = (x,y,z)
let a[2] = (x,z,y)
let a[3] = (z,y,x)
let a[4] = (y,z,x)
let a[5] = (z,x,y)
let a[6] = (y,x,z)
sort a by the last value of 3-uplet, in increasing order
for (int i = 1; i <6; i++) {
    if a[i] satisfies all the constraints return a[i];
}
return "no solution found"

此外,如果您使用稳定排序,此算法可确保您获得尽可能少的换位解决方案。