排序应用 -- 求数组逆序数(Kendall tau distance)


void KendallTauDistance()
{
    int x[10] = {1,2,3,4,5};
    int y[10] = {2,3,1,5,4};
    int xReverse[10];
    int yInxReverse[10];

    // 数组X的反向数组
    for (int i=0;i<5;i++)
    {
         xReverse[x[i]] = i;
    }

    // 根据数组X的反向数组来获取数组y的值在数组x中的索引
    // 这么一来yInxReverse就是以数组x为标准的排序
    for (int i=0;i<5;i++)
    {
        yInxReverse[i] = xReverse[y[i]];
    }

    // 对yInxReverse进行插入排序,只要是交换的数据,都是逆序对
    

}

 

暂无评论

注册用户登录后才能发表或者回复评论,请先登录 注册。