gpt4 book ai didi

java - Java中对数组进行排序的方法

转载 作者:行者123 更新时间:2023-11-29 08:21:15 24 4
gpt4 key购买 nike

我一直在研究一种方法,可以将数组从最低到最高排序。我想出了下面的代码,但正如您可能猜到的那样,它没有达到我的预期。

我希望应用的逻辑如下:

假设我有一个数组,例如数组 {4,3,1,2,5}例如,代码会将数组 [0](在本例中为 4)与数组中的每个元素进行比较,

array[0]>array[0] (4>4=false), 
array[0]>array[1] (4>3)= +1counter,
array[0]>array[2] (4>1)= +1counter,
array[0]>array[3] (4>2)= +1counter,
array[0]>array[4] (4>5=false)

counter = 3

因此,由于计数器值现在为 3,因此在新数组(array2 或 arrayOrdered)中,数字 4 将位于第三个索引中。

我该如何解决?非常感谢任何帮助!

public static int[] OrderArray(int[] array)
{

int[] array2=new int[array.length];

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

}
return array2;
}

最佳答案

您要执行的操作称为排序,您可以使用许多具有不同特征的已知排序算法来完成您想要的操作。

您可以在这里阅读许多不同的排序算法:https://en.wikipedia.org/wiki/Sorting_algorithm

Java 本身内置了排序功能,您可以使用 Arrays.sort 方法对数组进行排序,该方法使用非常快速且众所周知的数组Quicksort 算法的整数。

正如其他评论员所讨论的那样,您的排序算法似乎有缺陷,总体上似乎最接近插入排序 算法,您可能需要查看该算法以获得一些想法:https://en.wikipedia.org/wiki/Insertion_sort

Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. At each iteration, insertion sort removes one element from the input data, finds the location it belongs within the sorted list, and inserts it there. It repeats until no input elements remain.

上面链接的伪代码:

i ← 1
while i < length(A)
j ← i
while j > 0 and A[j-1] > A[j]
swap A[j] and A[j-1]
j ← j - 1
end while
i ← i + 1
end while

关于java - Java中对数组进行排序的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57929683/

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