HackerRank - Insertion Sort Advanced Analysis
2015-03-18 03:42
441 查看
"How many inverted pairs" - that usually ends up with MergeSort solution (of course there are other solutions out there)
def mergeSort(arr): if len(arr) == 1: return 0, arr mid = len(arr) // 2 cnt1, arr1 = mergeSort(arr[:mid]) cnt2, arr2 = mergeSort(arr[mid:]) # ret = [] cnt = 0 i = 0 j = 0 inx = 0 while i < len(arr1) and j < len(arr2): if arr1[i] <= arr2[j]: ret.append(arr1[i]) i += 1 elif arr2[j] < arr1[i]: ret.append(arr2[j]) cnt += len(arr1) - i # arr2 -> arr1 j += 1 while i < len(arr1): ret.append(arr1[i]) i += 1 while j < len(arr2): ret.append(arr2[j]) j += 1 return cnt1 + cnt2 + cnt, ret T = int(input()) for _ in range(0, T): n = int(input()) arr = [int(i) for i in input().strip().split()] cnt, _ = mergeSort(arr) print (cnt)
相关文章推荐
- 【hackerrank】Insertion Sort Advanced Analysis
- 【HackerRank】Insertion Sort Advanced Analysis(归并排序求数列逆序数对)
- Hackerrank && Insertion Sort - Part 1
- Insertion Sort Advanced Analysis(逆序对)
- Introduction: Analysis of Algorithms, Insertion Sort, Merge Sort
- PAT(Advanced Level)1098. Insertion or Heap Sort
- PAT (Advanced Level) Practise 1098 Insertion or Heap Sort (25)
- Pat(Advanced Level)Practice--1098( Insertion or Heap Sort)
- PAT (Advanced Level) Practise 1098 Insertion or Heap Sort (25)
- hackerrank>Dashboard>C++>STL>Vector-Sort
- PAT (Advanced Level) 1098. Insertion or Heap Sort (25)
- HackerRank "Lena Sort"
- 【HackerRank】 The Full Counting Sort
- PAT (Advanced Level) Practise - 1098. Insertion or Heap Sort (25)
- PAT (Advanced Level) 1098. Insertion or Heap Sort (25) 直插和堆排
- PAT (Advanced Level) 1012. The Best Rank (25) struct vector sort
- [hackerrank]Counting Sort 3
- 【PAT】【Advanced Level】1098. Insertion or Heap Sort (25)
- 【Hacker Rank】02.Reading Raw Input
- HackerRank "Chessboard Game, Again!"