需要帮助修复“最小”输出。此外,通过不使用 Arrays.sort 来更改代码

Posted

技术标签:

【中文标题】需要帮助修复“最小”输出。此外,通过不使用 Arrays.sort 来更改代码【英文标题】:Need Help in fixing "Minimum" output. Also, altering the code by not using Arrays.sort 【发布时间】:2015-07-16 10:30:54 【问题描述】:

我希望在不使用 Arrays.sort 的情况下修复“最小”输出和更改代码方面得到帮助。只要一些线索就可以了。

package newempty;
import java.util.*;
public class NewEmpty
public static void main (String args [])
Scanner in = new Scanner (System.in);
int bry [] = new int [5];
int high = bry[0];
int low = bry[0];
for (int i = 0; i < bry.length; i++)
  System.out.print("Enter a Number: ");
  bry[i] = in.nextInt();

System.out.print("Ascending Order: ");
for (int i = 0; i<bry.length; i++)
  high = bry [i] > high ? bry[i]:high;
  Arrays.sort(bry);
  System.out.print(" " + bry[i]);

System.out.print("\nDescending Order: ");
for (int i = bry.length-1; i>=0; i--)
  low = bry [i] < low ? bry[i]:low;
  Arrays.sort(bry);
  System.out.print(" " + bry[i]);

System.out.println("\nMinimum: " + low);
System.out.println("Maximum: " + high);


【问题讨论】:

【参考方案1】:

不要在循环中对数组进行排序!

for (int i = bry.length-1; i>=0; i--)
  low = bry [i] < low ? bry[i]:low;
  Arrays.sort(bry);
  System.out.print(" " + bry[i]);

而且您不必一遍又一遍地对其进行排序。一次就够了。一旦它被排序,它被排序。此外,一旦你对它进行了排序,你就不必去搜索最小值和最大值。它们分别位于列表的开头和结尾。

改为这样做:

Arrays.sort(bry);
low = bry[0];
high = bry[bry.length-1];
System.out.print("Ascending Order: ");
for (int i = 0; i < bry.length; i++)
  System.out.print(" " + bry[i]);

System.out.println();
System.out.print("Descending Order: ");
for (int i = bry.length-1; i>=0; i--)
  System.out.print(" " + bry[i]);

在一个完全不相关的注释中,现在忘记“\n”是换行符。那不是真的。 \n 是 Unixland 中的换行符。 \r\n 是 Windows 领域的换行符。较旧的 Mac 使用 \r 作为换行符。其他一些系统甚至使用\n\r。

http://en.wikipedia.org/wiki/Newline

如果你假设 \n 到处都是换行符,你以后会头疼的。在这种情况下,你可以只要求一个 println,但你也可以养成要求的习惯:

 String newline = System.getProperty("line.separator"); 

这将为您提供适合代码运行系统的任何换行符。

【讨论】:

谢谢@Kevin Walker 先生。呵呵呵呵。

以上是关于需要帮助修复“最小”输出。此外,通过不使用 Arrays.sort 来更改代码的主要内容,如果未能解决你的问题,请参考以下文章

每周一题:最小绝对差(更新JS)

leetcode1200. 最小绝对差

需要帮助来修改JS代码以实现所需的输出

最小的k个数

JS 最小到目前为止回溯算法错误

输出一组数字中的最小数