由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - linked list排序的算法除了bubble
相关主题
求推荐学习recursive 算法的资料帮我看一下5行代码
收集了几个 List相关的题linkedin今天的电面题
sorted linked list里insert一个node有重复元素的全排列,递归算法
一个stack怎么sort150上这个是不是不对? (转载)
CCup题目2.1是不是有更简单的O(n)的解贡献几个on-site题,不说谁家的了
google拒人,不解释一下原因吗?面经附上Some coding problems from Amazon
[ 每日一课] Sort List这题怎么做?
湾区公司店面leetcode上的sorted list to BST
相关话题的讨论汇总
话题: list话题: next话题: sort话题: pivot话题: less
进入JobHunting版参与讨论
1 (共1页)
d*********g
发帖数: 59
1
感觉bubble比较好implement,但是效率不高,请问可以用quick sort吗?有简单的
implement吗?
c***2
发帖数: 838
2
merge sort:
1) split list in half
2) recursion
3) merge sorted list
O(nlgon)
Insertion sort:
Build a new list by inserting new element in order.
O(n^2)
h***n
发帖数: 276
3
quick有,不难,merge sort也是
随便拷贝一段代码给你看看吧
void quick_sort_list(list *list)
{
if (list == NULL)
return;
list->head = quick_sort_list_recursive(list->head);
}
list_node* quick_sort_list_recursive(list_node *node)
{
list_node *pivot, *less, *larger, *p, *next;
if (node == NULL)
return NULL;

less = larger = NULL;
pivot = node;
p = pivot->next;
pivot->next = NULL;
while (p) {
next = p->next;
if (p->data < pivot->data) {
p->next = less;
less = p;
} else {
p->next = larger;
larger = p;
}
p = next;
}
less = quick_sort_list_recursive(less);
larger = quick_sort_list_recursive(larger);
pivot->next = larger;
if (less) {
p = less;
while (p->next)
p = p->next;
p->next = pivot;
} else {
less = pivot;
}
return less;
}

【在 d*********g 的大作中提到】
: 感觉bubble比较好implement,但是效率不高,请问可以用quick sort吗?有简单的
: implement吗?

j********x
发帖数: 2330
4
list本身存在理由就不是为了高效的排序

吗?有简单的

【在 d*********g 的大作中提到】
: 感觉bubble比较好implement,但是效率不高,请问可以用quick sort吗?有简单的
: implement吗?

w**********y
发帖数: 1691
5
@ch222:
用merge sort是不是有问题啊? linked list不支持random access,那样的话还是O(
nlogn)么?
@justicezyx
展开说说该怎么回答呢? 是说要用一些常见的tree么?
俺是编程小白,请不要笑话俺问题的幼稚...
c***2
发帖数: 838
w**********y
发帖数: 1691
7
多谢.这些不长但是能用的code对俺这样的新手太有用了..
http://bitbucket.org/amitksaha/foobar-scripts/src/f732216b9649/merge-sort-struct.c

【在 c***2 的大作中提到】
: http://stackoverflow.com/questions/7685/merge-sort-a-linked-list
r****o
发帖数: 1950
8

Since you can build a new list, why not build a new array ?

【在 c***2 的大作中提到】
: merge sort:
: 1) split list in half
: 2) recursion
: 3) merge sorted list
: O(nlgon)
: Insertion sort:
: Build a new list by inserting new element in order.
: O(n^2)

1 (共1页)
进入JobHunting版参与讨论
相关主题
leetcode上的sorted list to BSTCCup题目2.1是不是有更简单的O(n)的解
CISCO 面经,有点坑爹。顺便请教一题。google拒人,不解释一下原因吗?面经附上
Flatten Binary Tree to Linked List的recursive解法[ 每日一课] Sort List
[BSSD]回国一趟回来做题很难进入状态了,顺便问下那个Merge k Sorted湾区公司店面
求推荐学习recursive 算法的资料帮我看一下5行代码
收集了几个 List相关的题linkedin今天的电面题
sorted linked list里insert一个node有重复元素的全排列,递归算法
一个stack怎么sort150上这个是不是不对? (转载)
相关话题的讨论汇总
话题: list话题: next话题: sort话题: pivot话题: less