【发布时间】:2016-11-11 17:43:45
【问题描述】:
我创建了一个整数链表,但我不知道如何排序! iv 尝试了很多,但列表中的数字总是消失 这是我用于链表的代码!
import java.util.Random;
class Node {
Node next;
int num;
public Node(int val) {
num = val;
next = null;
}
}
public class LinkedList {
Node head;
public LinkedList(int val) {
head = new Node(val);
}
public void append(int val) {
Node tmpNode = head;
while (tmpNode.next != null) {
tmpNode = tmpNode.next;
}
tmpNode.next = new Node(val);
}
public static void main(String[] args) {
Random rn=new Random();
int min=0;
int max=1000;
LinkedList myList = new LinkedList(rn.nextInt((max - min) + 1) + min);
for(int i=0;i<100;i++){
int x=rn.nextInt((max - min) + 1) + min;
myList.append(x);
}
myList.print();
}
}
【问题讨论】:
-
对数组进行排序有多种方法:归并排序、快速排序、冒泡排序等。您应该知道如何实现其中的一些。谷歌是你的朋友。 :)
-
对链表进行排序有点棘手,因为它没有随机访问。如果您想使用标准排序算法,最好将数据复制到数组并对其进行排序。
-
如果你只想对整数进行排序,我建议你使用 TreeSet 而不是 LinkedList。
-
@MohamedBathaoui 这两个完全不同。最明显的是,
TreeSet不支持重复。因为它是Set。 -
是的,我同意@BoristheSpider。这就是为什么我提到“唯一”这个词。一切都是为了对他的情况进行整数排序。
标签: java arrays arraylist linked-list swap