java - 对数组进行排序不需要比较第一个元素(java编程)?

标签 java arrays sorting

我正在尝试对包含 5 个数字(size=4)的数组进行从大到小的排序,但是我花了很长时间,而且我不知道为什么我的代码不对第一个元素进行排序..

这是我的代码:

public class sortingS
{
public static void main(String []args)
{
    int a[]={5,-2,10,14,-1};
    for(int i=0; i<a.length; i++)
    {
        for(int j=0; j<i; j++)
        {
            if(a[i]>a[j+1])
            {
                int temp=a[j+1];
                a[j+1]=a[i];
                a[i]=temp;
            }
        }
    }
    for(int i=0; i<a.length; i++){
        System.out.println(a[i]);
    }
}
}

这是输出:

5 14 10 -1 -2

最佳答案

由于某种原因,您正在比较 j 当前索引之后的元素;你总是使用j+1。无论您在哪里使用 j,都不要再将 1 添加到它。您将这样跳过第一个元素。

if(a[i] > a[j])
{
    int temp = a[j];
    a[j] = a[i];
    a[i] = temp;
}

关于java - 对数组进行排序不需要比较第一个元素(java编程)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34952999/

相关文章:

java - android.app.RemoteServiceException : at android. app.ActivityThread$H.handleMessage 发送通知时

sql - 使用 GROUP BY 连接两个 SQL 表未达到预期结果

c++ - 在C++中将std::sort与迭代器和模板一起使用

javascript - array.sort() 在 IE 11 中无法使用 compareFunction

java - Mule 没有使用 Spring 找到属性文件

java - 如何使用 Java 泛型以便为返回类型为 List<Interface> 的方法返回 List<InterfaceImpl>

jquery - 需要将json键值对转换为标准数组

c - 数组中的负索引

java - 运行 mybatis 生成器时出现意外错误。不支持的主要.次要版本 51.0

无法将字符串复制到 C 中的字符串数组