blob: 1ab5485e904b68c8d822dec842f2418801e3005d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# **************************************************************************** #
# #
# ::: :::::::: #
# ft_list_sort.s :+: :+: :+: #
# +:+ +:+ +:+ #
# By: cacharle <marvin@42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2019/11/22 21:03:52 by cacharle #+# #+# #
# Updated: 2019/11/22 21:27:27 by cacharle ### ########.fr #
# #
# **************************************************************************** #
.globl _ft_list_sort
# void ft_list_sort(t_list **begin_list, int (*cmp)());
_ft_list_sort:
push rbp
mov rbp, rsp
call _ft_list_size
cmp eax, 2
jl FT_LIST_SORT_END
# split in half
# _ft_list_sort both half
# merge_sorted
FT_LIST_SORT_END:
pop rbp
ret
merge_sorted:
#ListNode* mergeTwoLists(ListNode* l1, ListNode* l2)
#{
# ListNode *merged = NULL;
#
# if (l1 == NULL && l2 == NULL)
# return NULL;
# if (l1 == NULL)
# return l2;
# if (l2 == NULL)
# return l1;
# merged = l1->val < l2->val ? l1 : l2;
# if (l1->val < l2->val)
# merged->next = mergeTwoLists(l1->next, l2);
# else
# merged->next = mergeTwoLists(l1, l2->next);
# return merged;
#}
|