java - 使用java中的冒泡排序查找数组中第一个第二大的数字及其位置

标签 java arrays sorting

编写一个程序,将 5 个数字读入一个数组,并打印最大的数字和第二大的数字以及它们在该数组中的位置。

import static java.lang.System.*;
import java.util.*;
public class bubble sort
{
    public static void main(String[] args)
    {
        int i,j,temp;
        Scanner input = new Scanner(in);
        int array[]=new int [5];
        for(i=0;i<array.length;i++)
        {
            out.println("please input an integer");
            array[i]=input.nextInt();
        }
        for(i=0;i<array.length;i++)
        {
            for(j=0;j<array.length;j++)
            {
                if(array[i]>array[j])
                {
                    temp=array[i];
                    array[i]=array[j];
                    array[j]=temp;
                }
            }
        }
           out.print(array[0]+" is the largest number");
           out.println(array[1]+" is the 2nd largest number");

    }
}

现在要打印他们的位置,我是否必须遵循另一种排序方法?或者可以使用冒泡排序吗?

最佳答案

位置 [0] 和 [1] 将存储最小的数字。否则,您正在寻找反向冒泡排序,这不是您的代码的情况。

现在,如果我收到你的问题,你可以创建两个数组。一种用于数字,另一种用于索引。您对数组进行排序以查找数字数组,但对索引应用相同的更改。因此,最后您将对两个数组进行排序,并且可以简单地显示每个数组的位置 [4] 和 [3](这不是一种好的性能方法):

import static java.lang.System.*;
import java.util.*;
public class bubble sort
{
    public static void main(String[] args)
    {
        int i,j,temp;
        Scanner input = new Scanner(in);
        int number_array[]=new int [5];
        int index_array[5] = {0, 1, 2, 3, 4};
        for(i=0;i<number_array.length;i++)
        {
            out.println("please input an integer");
            number_array[i]=input.nextInt();
        }
        for(i=0;i<number_array.length;i++)
        {
            for(j=0;j<number_array.length;j++)
            {
                if(number_array[i]>number_array[j])
                {
                    temp=number_array[i];
                    number_array[i]=number_array[j];
                    number_array[j]=temp;

                    temp=index_array[i];
                    index_array[i]=index_array[j];
                    index_array[j]=temp;
                }
            }
        }
           out.print(number_array[4]+" is the largest number with initial index "+index_array[4]);
           out.println(number_array[3]+" is the 2nd largest number with initial index "+index_array[3]);

    }
}

希望对你有帮助

关于java - 使用java中的冒泡排序查找数组中第一个第二大的数字及其位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31375040/

相关文章:

java - 使用 Jenkins 内部版本号安装/部署 Maven

java - 如何在 Ubuntu 下安装 JDK 11?

r - 折叠一个数据框列表并与 R 中的另一个数据框列表组合

java - 对可比较接口(interface)的数组进行排序

java - 不同版本的客户端,在单一版本的 Kafka 代理上

java - 使用 vertx 在 mongoDB 中批量写入

Java:如何将数组传递给方法

c - 一个递归函数,在c中查找数组的总和

javascript - 如何从 ko.compulated 中删除数组项

java - 列表Java Spring中的分页