开始想到的是最大堆,后来感觉红黑树、平衡二叉树都行。明天起来弄一下。
2) 假设有一个数组,里面的数字没有排序,请找出乱序的对数。乱序定义如下例:
数组包括1,2,5,4,3, 按从左到右一共有以下数对: (1,2),(1,5),(1,4),(1,3),(2,5),(2,4),(2,3),(5,4),(5,3),(4,3)。 如果数对(a,b)中a>b,则定义为乱序对。这里有三个乱序对,(5,4), (5,3), (4,3)。 请写一个程序输入为一个数组, 输出是所有的乱序对。请用任何你熟悉的语言写出可执行的程序,要求时间复杂度最小。
来源:http://job.dajie.com/01461f68-cf58-410f-8f26-3729a16700a9.html
最后解决的答案在这里:
http://blog.csdn.net/lileiyang12/article/details/18908847