1.题目:
题目描述
给定一个无序单链表,实现单链表的选择排序(按升序排序)。
输入描述:
第一行一个整数 n,表示单链表的节点数量。 第二行 n 个整数 val 表示单链表的各个节点。
输出描述:
在给出的函数内返回给定链表的头指针。
示例1
输入
复制
5 1 3 2 4 5
输出
复制
1 2 3 4 5
2.代码
主要思路:直接Arrays.sort()方法。
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a =new int[n];
for(int i = 0;i<n;i++){
a[i] = sc.nextInt();
}
Arrays.sort(a);
for(int j =0;j<n;j++){
System.out.print(a[j]+" ");
}
}
}
3.总结
关于Arrays.sort()方法:
1.Arrays.sort使用了两种排序方法,快速排序和优化的合并排序。
Arrays.sort(a);
2.点击查看里面的源码:dual-pivot quicksort; 时间复杂度是O(nlog(n));
/**
* Sorts the specified array into ascending numerical order.
*
* <p>Implementation note: The sorting algorithm is a Dual-Pivot Quicksort
* by Vladimir Yaroslavskiy, Jon Bentley, and Joshua Bloch. This algorithm
* offers O(n log(n)) p