gpt4 book ai didi

java - 使用 For 循环手动对数组进行排序 - Java

转载 作者:行者123 更新时间:2023-11-30 06:55:58 25 4
gpt4 key购买 nike

我在使用 for 循环手动排序数组时遇到问题。除了第一个和最后一个数字外,它都有效。这是我的代码:

Scanner numInput = new Scanner(System.in);

int tempVar, num;
String numbersString;
int[] numbers = {4, 11, 13, 12, 17, 35, 15, 7, 19, 3, 45};

for (int i = 0; i < numbers.length - 1; i++)
{
for(int j = 0; j < numbers.length - 1; j++)
{
if(numbers[i] < numbers[j + 1])
{
tempVar = numbers [j + 1];
numbers [j + 1]= numbers [i];
numbers [i] = tempVar;
}
}
}

numbersString = Arrays.toString(numbers);

System.out.println(numbersString);

最佳答案

您必须将 j 的值初始化为 i+1,这种排序算法称为冒泡排序,如果相邻元素的顺序错误,则通过重复交换它们来工作。即使数组已排序,以下方法也始终运行 O(n^2) 次。

public static void main (String[] args)
{
int[] array = {4,2,1,3,5,9,6,8,7};

for(int i = 0 ; i < array.length;i++)
{
for(int j = i+1 ; j< array.length;j++)
{
if(array[i] > array[j])
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}

关于java - 使用 For 循环手动对数组进行排序 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34745203/

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