当前位置: 首页 > 面试题库 >

用Java对3个值进行排序的最快方法

翟缪文
2023-03-14
问题内容

我必须按正确的顺序放置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;
 }
}


 类似资料:
  • 本文向大家介绍java对数组进行排序的方法,包括了java对数组进行排序的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java对数组进行排序的方法。分享给大家供大家参考。具体如下: 执行结果: 排序前:  12 24 25 4 9 68 45 7   排序后:  4 7 9 12 24 25 45 68 希望本文所述对大家的java程序设计有所帮助。

  • 边走边学Java(Python背景)。简单的单词计数程序在Java7代码(不能用J8!)。 我有一个单词的哈希图:计数对。现在我需要按计数(递减顺序)排序,并打破按字母顺序使用word的联系。 我正在寻找对这个想法的反馈: 遍历HashMap中的映射项(me) 使用me.getkey=K和me.getvalue=v new map.entry reverse_me=(V,K){不确定此语法} 将r

  • 我试图对包含大约100个大型实体(几乎有30个键)的对象数组进行排序,其基础是key的值,这些值深深嵌套在一个对象中,为此我使用了Lodash的orderBy方法: *考虑sortOrder为desc或asec 但排序过程所花费的时间相当长。我们可以使用哪种更好的方法来将键深埋在对象中对对象数组进行排序? 示例数据(考虑这样的50个条目至少有40个键)

  • 问题内容: 简而言之:有什么方法可以对GROUP_CONCAT语句中的值进行排序吗? 查询: 我得到这一行: 工艺品»细木工 行政管理»组织 我想要这样: 行政管理»组织 工艺品»细木工 问题答案: 当然,请参见http://dev.mysql.com/doc/refman/...tions.html#function_group- concat :

  • 问题内容: 我有这样的价值观: 我想按升序对每个值进行排序。我不想在集合之间进行排序,而是在每个集合中进行排序。 问题答案: 来自评论: 我想对每个集合进行排序。 这很容易。对于任何集合(或其他任何可迭代的对象),以排序顺序返回的元素列表: 请注意,这是给您一个,而不是一个。这是因为在数学和几乎每种编程语言中,集合的全部要点*都是无序的:集合和是同一集合。 您可能真的不想将这些元素排序为字符串,而

  • 按列对数组进行排序,就像我想在这里对最后一行上的值进行排序一样,根据排序结果,同一行中其他列上的数字也可能会发生变化 例如