Guest User

Untitled

a guest
Jan 19th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.59 KB | None | 0 0
  1. def sort_and_count_inversions(seq):
  2. """Sort a sequence and count inversions.
  3.  
  4. Argument: seq -- a sequence
  5.  
  6. Result: number of inversions (cases where i < j, but seq[i] > seq[j]).
  7.  
  8. Side effect: seq is sorted.
  9.  
  10. """
  11. def sort_and_count(seq, start, end):
  12. if end - start < 2:
  13. return 0
  14. middle = (start + end) // 2
  15. return (sort_and_count(seq, start, middle)
  16. + sort_and_count(seq, middle, end)
  17. + merge_and_count_inversions(seq, start, middle, end))
  18. return sort_and_count(seq, 0, len(seq))
  19.  
  20. tabela = input()
  21. array = list(tabela)
  22. print (sort_and_count_inversions(array))
Add Comment
Please, Sign In to add comment