Closed. This question needs debugging details。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        4年前关闭。
                    
                
        

我必须按正确的顺序放置3个值,然后将它们打印到控制台。

一种解决方案是将它们放入数组,然后对它们进行排序,但是我(从学校时代开始)记得比较和排序它们的速度更快,但是我找不到正确的比较顺序。

您能否告诉我如何比较3个值和最少数量的if语句?

最佳答案

优化这一点毫无意义。它不会获得任何速度。 3的O(n!)仍然只有3 * 2 = 6个运算。甚至O(2 ^ n)也将是8。您实际上可以执行将这3个值排序的任何操作,而不会看到性能上的差异。

编辑

int a, b, c, min, max, med;//assume values are there for a b c
if( a > b ){
 if( a > c ){
  max = a;
  if( b > c ){
   med = b;
   min = c;
  }else{
   med = c;
   min = b;
  }
 }else{
  med = a;
  max = c;
  min = b;
 }
}else{
 if( b > c ){
  max = b;
  if( a > c ){
   med = a;
   min = c;
  }else{
   med = c;
   min = a;
  }
 }else{
  med = b;
  max = c;
  min = a;
 }
}

10-07 12:01