找出此函数中使用的排序算法
find out which sorting alogorithm used in this function
你好谁能帮我看看这个函数中使用了哪种排序算法
public void sortList() {
Node current = null, index = null;
int temp;
//Check whether list is empty
if(head == null) {
return;
}
else {
//Current will point to head
for(current = head; current.next != null; current = current.next) {
//Index will point to node next to current
for(index = current.next; index != null; index = index.next) {
//If current's data is greater than index's data, swap the data of current and index
if(current.data > index.data) {
temp = current.data;
current.data = index.data;
index.data = temp;
}
}
}
}
}
顺便说一句是Doubly Link List
当前节点固定,然后从下一个节点开始迭代(通过索引变量),在外循环一次迭代结束时,current指向的节点有正确的值,则current为前进到下一个节点。
这是选择排序,最基本的排序
有趣的事实:虽然由于复杂性而慢 O(n^2) 选择排序可以在写入操作开销很大时使用,因为对于大小为 n
的列表,它最多只交换 n 次
你好谁能帮我看看这个函数中使用了哪种排序算法
public void sortList() {
Node current = null, index = null;
int temp;
//Check whether list is empty
if(head == null) {
return;
}
else {
//Current will point to head
for(current = head; current.next != null; current = current.next) {
//Index will point to node next to current
for(index = current.next; index != null; index = index.next) {
//If current's data is greater than index's data, swap the data of current and index
if(current.data > index.data) {
temp = current.data;
current.data = index.data;
index.data = temp;
}
}
}
}
}
顺便说一句是Doubly Link List
当前节点固定,然后从下一个节点开始迭代(通过索引变量),在外循环一次迭代结束时,current指向的节点有正确的值,则current为前进到下一个节点。 这是选择排序,最基本的排序
有趣的事实:虽然由于复杂性而慢 O(n^2) 选择排序可以在写入操作开销很大时使用,因为对于大小为 n
的列表,它最多只交换 n 次