gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 13:39:18 25 4
gpt4 key购买 nike

编写一个程序,将 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com