我正在编写一个程序,它排列数组中的元素,最大值位于最后,然后随着它们在数组中向后移动而减小大小。我可以将它们排列成最小的,依此类推,但我想看看我是否可以反过来做。下面是我的代码。它在第一次迭代之后不起作用。任何人都可以帮助我。
import java.util.Scanner;//Importing scanner class.
import java.util.Arrays;//Importing the array class.
{
public static void main(String[] args)
{
double [] numbers= {5,3,6,4,1};
double currentMax;
int currentMaxIndex;
int i,j,k;
// Scanner input = new Scanner(System.in);//Creating a scanner.
//The below lines are used to ask the user to enter 10 numbers.
/* for (k = 0;k<numbers.length;k++)
{
System.out.print("Enter number " + k +" : ");
numbers[k]=input.nextDouble();
}//end of for loop.
*/
for(i=numbers.length-1;i>1;i--)
{
currentMax=numbers[i];
currentMaxIndex=i;
for(j=numbers.length-2;j>0;j--)
{
if(currentMax<numbers[j])
{currentMax=numbers[j];
currentMaxIndex=j;
}
}
if(currentMaxIndex!=i)
{
numbers[currentMaxIndex]=numbers[i];
numbers[i]=currentMax;
}
}
System.out.print("The sorted new array is:\n");
for(i=0;i<numbers.length;i++)
{
System.out.print(numbers[i]+" ");
}
}
}