Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mergeSort([]) -> [];
- mergeSort([H]) -> [H];
- mergeSort(List) ->
- {Front, Back} = split(List),
- merge(mergeSort(Front), mergeSort(Back)).
- split(List) -> split(List,[],[],len(List),0).
- split([],Front,Back,_,_) -> {Front,Back};
- split([H|T],Front,Back,Len,Curr) when Curr < Len/2 -> split(T,[H|Front],Back,Len,Curr+1);
- split([H|T],Front,Back,Len,Curr) when Curr >= Len/2 -> split(T,Front,[H|Back],Len,Curr+1).
- merge([], Back) -> Back;
- merge(Front, []) -> Front;
- merge([H1|T1],[H2|T2]) when H1 < H2 -> [H1 | merge(T1, [H2|T2])];
- merge([H1|T1],[H2|T2]) when H1 >= H2 -> [H2 | merge([H1|T1], T2)].
- bubbleSort([]) -> [];
- bubbleSort([H]) -> [H];
- bubbleSort(List) -> bubbleSort(List,[],true).
- bubbleSort([], List, true) -> reverse(List);
- bubbleSort([], List, false) -> bubbleSort(reverse(List), [], true);
- bubbleSort([F,S|T], List, _) when F > S -> bubbleSort([F|T],[S|List],false);
- bubbleSort([X|T], List, Zatrzymac) -> bubbleSort(T, [X|List], Zatrzymac).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement