统计数组逆序对

原创 2018年04月16日 13:42:38

在剑指offer中的36题,分析中给出两种解决方案,1.直接用蛮力解,时间复杂度为O(n^2);2.用归并解,时间复杂度为O(nlog)

这里根据思路给出代码,书中写了用O(n)的空间换时间来完成,但感觉实际上并不需要空间,直接根据归并思想就可以操作。

def countNum(data,start,end):
    if start == end:
        return 0
    len =  (end - start)/2
    left = countNum(data,start,start+len)
    right = countNum(data,start+len+1,end)
    i= start+len
    j = end
    count = 0
    while i >= start and j>=start+len+1:
        if(data[i] > data[j]):
            print(data[i],data[j])
            data[i],data[j] = data[j],data[i]
            i  -= 1
            count += j - start - len
        else:
            j -=1
    return left+right+count
data = [7,5,6,4]
print countNum(data,0,len(data)-1)

统计逆序对

  • 2012年03月12日 15:48
  • 792B
  • 下载

统计数组的逆序对

题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 题目代码 思路:这个最简单的当然是直接统计了,算法时间复杂...
  • PirLCK
  • PirLCK
  • 2016-09-06 16:54:44
  • 488

编程算法 - 数组中的逆序对 代码(C)

数组中的逆序对 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 在数组中的两个数字如果前面一个数字大于后面的数字, 则这两个数字组成一个逆序对.输入...
  • u012515223
  • u012515223
  • 2014-07-03 14:41:19
  • 1582

剑指Offer 面试题36:数组中的逆序对及其变形(Leetcode 315. Count of Smaller Numbers After Self)题解

剑指Offer 面试题36:数组中的逆序对 题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 例如, 在数组{7,...
  • yanglr2010
  • yanglr2010
  • 2016-05-07 09:59:53
  • 2572

利用归并排序思想求数组中的逆序对

http://blog.csdn.net/seuliujiaguo/article/details/39555481 这是快排其他的应用 http://blog.csdn.net/seuliuji...
  • seuliujiaguo
  • seuliujiaguo
  • 2014-09-26 10:07:32
  • 1181

顺序统计树求逆序对 O(nlgn)

算法导论 14.1-7 顺序统计树求逆序对 O(nlgn) 分类: 算法导论2012-07-09 21:34 542人阅读 评论(4) 收藏 举报 算法treeinsertosst...
  • pi9nc
  • pi9nc
  • 2013-05-31 16:51:46
  • 1391

leetcode 493. Reverse Pairs 归并排序统计逆序对数量 + 这个我估计是做不出来的,还是直接暴力吧

Given an array nums, we call (i, j) an important reverse pair if i 2*nums[j]. You need to return t...
  • JackZhang_123
  • JackZhang_123
  • 2017-12-14 09:44:09
  • 124

11087 统计逆序对(递归(分治),交错)

11087 统计逆序对 时间限制:1000MS  内存限制:65535K 提交次数:0 通过次数:0 题型: 编程题   语言: C++;C;VC;JAVA Des...
  • u013571487
  • u013571487
  • 2014-11-12 01:25:07
  • 1681

分治法求逆序对

逆序对是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i 对于这个问题,很容易能想到n^2的算法,但是显然很多时候这个复杂度太高了,我们今天谈谈nlogn的算法。 对于求逆序对...
  • Night_13
  • Night_13
  • 2017-04-13 23:44:29
  • 313
收藏助手
不良信息举报
您举报文章:统计数组逆序对
举报原因:
原因补充:

(最多只允许输入30个字)