例如我有数组:
int IDs[]={1,21,5,3,12,23,2};
错误顺序的对数是9
。对是:(21, 5) (21,3) (21, 12) (21,2) (5,3) (5,2) (3,2) (12,2) (23,2)
。
所以,我的算法意味着两个用于:
for(int i=0;i<IDs.length;i++)
{
for(int j=i+1;j<IDs.length;j++)
{
if(IDs[i]>IDs[j])
wrong++;
}
}
问题在于它具有n 2 的复杂性,我应该具有最大n * log n的复杂性。