Advertisement
Guest User

Untitled

a guest
Nov 2nd, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Erlang 0.96 KB | None | 0 0
  1.  
  2. mergeSort([]) -> [];
  3. mergeSort([H]) -> [H];
  4. mergeSort(List) ->
  5.     {Front, Back} = split(List),
  6.     merge(mergeSort(Front), mergeSort(Back)).
  7.  
  8. split(List) -> split(List,[],[],len(List),0).
  9.  
  10. split([],Front,Back,_,_) -> {Front,Back};
  11. split([H|T],Front,Back,Len,Curr) when Curr < Len/2 -> split(T,[H|Front],Back,Len,Curr+1);
  12. split([H|T],Front,Back,Len,Curr) when Curr >= Len/2 -> split(T,Front,[H|Back],Len,Curr+1).
  13.  
  14. merge([], Back) -> Back;
  15. merge(Front, []) -> Front;
  16. merge([H1|T1],[H2|T2]) when H1 < H2 -> [H1 | merge(T1, [H2|T2])];
  17. merge([H1|T1],[H2|T2]) when H1 >= H2 -> [H2 | merge([H1|T1], T2)].
  18.  
  19. bubbleSort([]) -> [];
  20. bubbleSort([H]) -> [H];
  21. bubbleSort(List) -> bubbleSort(List,[],true).
  22.  
  23. bubbleSort([], List, true) -> reverse(List);
  24. bubbleSort([], List, false) -> bubbleSort(reverse(List), [], true);
  25. bubbleSort([F,S|T], List, _) when F > S -> bubbleSort([F|T],[S|List],false);
  26. bubbleSort([X|T], List, Zatrzymac) -> bubbleSort(T, [X|List], Zatrzymac).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement