count_inversions in an integer list

来源:互联网 发布:怎么在淘宝上改评价 编辑:程序博客网 时间:2024/05/24 15:40

count = 0def merge_sort(li):    if len(li) < 2: return li     m = len(li) / 2     return merge(merge_sort(li[:m]), merge_sort(li[m:])) def merge(l, r):    global count    result = []     i = j = 0     while i < len(l) and j < len(r):         if l[i] < r[j]:             result.append(l[i])            i += 1         else:             result.append(r[j])            count = count + (len(l) - i)            j += 1    result.extend(l[i:])     result.extend(r[j:])     return resultfilename = 'Integer.txt'unsorted = []inFile = open(filename, 'r')lines = inFile.readlines()for i in lines:    content = i.strip('\n')    unsorted.append(int(content))merge_sort(unsorted)print count


0 0
原创粉丝点击