Java Arrays.sort()与实例
数组类 是一个包含静态方法的类,这些方法用于数组的搜索、排序、比较、插入元素,或返回数组的字符串表示。所以,让我们先明确这些函数,以后我们再讨论这些函数。它们如下,存在于java.util.Arrays类中。这里我们将讨论使用Arrays类的sort()方法的不同图。
Arrays.sort()方法包括两种变化,一种是我们不传递任何参数,它对整个数组进行排序,不管是整数数组还是字符数组,但如果我们要使用Arrays类的这个方法对特定的部分进行排序,那么我们要对它进行重载,并传递数组的起始和最后索引。
语法: sort() 方法
语法: 重载排序()方法
参数: 从语法上可以看出,它需要三个参数,如下所示。
- 要排序的数组
- 要排序的第一个元素的索引,包括在内,(称为from_index)
- 被排序的最后一个元素的索引,不包括在内(称为last_index)。
返回类型: NA
复杂度分析
- 时间复杂度: O(N log N)
- 辅助空间: O(1)
现在让我们看看sort()函数在Arrays类的不同场景下的实现,如下。
例1 :
输出
时间复杂度: O(nlog(n)),因为它是arrays.sort()的复杂度
辅助空间: O(1)
例2 :
输出
时间复杂度。O(N log N)
辅助空间。O(1)
例3 :
输出
时间复杂度。O(nlog(n)),因为它是arrays.sort()的复杂性
辅助空间 : O(1 )
例4 :
输出
时间复杂度。O(nlog(n)),因为它是arrays.sort()的复杂性
辅助空间 : O(1 )
例5 :
输出
时间复杂度。O(nlog(n)),因为它是arrays.sort()的复杂性
辅助空间:O(1 )
最后,我们将充分实现sort()方法,因为在这里我们将在比较器接口的帮助下声明我们自己定义的标准。
例6 :
输出
时间复杂度。O(nlog(n)),因为它是Arrays.sort()的复杂性
辅助空间:O(1 )
记住: Arrays.sort()与Collections.sort()之间有一点区别。Arrays.sort()适用于数组,数组也可以是原始数据类型。Collections.sort()适用于对象集合,如ArrayList, LinkedList等。
使用反向排序方法: 该方法将对数组进行降序排序。在Java集合类中也提供了reverseOrder()方法来对数组进行反向排序。 因为是静态方法,它不解析任何参数,所以我们可以通过使用类的名称直接调用它。它将通过sort()方法对数组进行升序排序,然后reverse order()方法将给我们提供自然排序,我们将得到降序排序的数组。
语法
例7 :
输出
时间复杂度。O(nlog(n)),因为它是arrays.sort()的复杂性
辅助空间:O(1 )