创新工厂笔试题------数组反序个数

创新工场笔试题:

给定一整型数组,若数组中某个下标值大的元素值小于某个下标值比它小的元素值,称这是一个反序。
即:数组a[]; 对于i < j 且 a[i] > a[j],则称这是一个反序。
给定一个数组,要求写一个函数,计算出这个数组里所有反序的个数。

创新工场的这道求反序个数的题就是算法导论中的题目。其实是对归并排序做些修改,算法的复杂度是nlgn。

程序代码如下:


//算法思想:并归排序数组S


#include "stdafx.h"
#include 
using namespace std;
#include 
#include 

int merge(int *a, int low, int mid, int high);
int mergesort(int *a, int low, int high);

int main()
{
	int i,k,length;
	srand((unsigned)time(NULL));
	length=rand()%20;//随即产生数组长度
	int *arry=new int[length];
	for (i=0;i


 

你可能感兴趣的:(算法导论算法)