永发信息网

java有自带类似于c++里面的next_permutation函数吗?

答案:2  悬赏:0  手机版
解决时间 2021-02-12 12:16
或者其他一些类似功能的函数
最佳答案
public void nextPermutation(int[] num)  
    {  
        if(num.length <= 1)  
            return ;  
        for(int i = num.length - 2; i >= 0; i--)  
        {  
            if(num[i] < num[i+1])  
            {  
                int j;  
                for(j = num.length - 1; j >= i; j--)  
                    if(num[i] < num[j])  
                        break;  
                // swap the two numbers.  
                num[i] = num[i] ^ num[j];  
                num[j] = num[i] ^ num[j];  
                num[i] = num[i] ^ num[j];  
                //sort the rest of arrays after the swap point.  
                Arrays.sort(num, i+1, num.length);  
                return ;  
            }  
        }  
        //reverse the arrays.  
        for(int i = 0; i < num.length / 2; i++)  
        {  
            int tmp = num[i];  
            num[i] = num[num.length - i - 1];  
            num[num.length - i - 1] = tmp;  
        }  
        return ;  
    }应该有,但是我没有找到,,找到了一个完整的函数。
全部回答
暂时没发现。。自己做的时候只好用回溯全排列了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我想问一下安徽有哪些大专是招美术生的,我统
中国体彩中国福彩(民主路新建路口向东三十米
ABS上的字母各代表什么意思?
亿加科技在哪里啊,我有事要去这个地方
到蒙阴县城走高速怎么走
中国体彩中国福利彩票(商永路与江华路交叉口
怡心岛地址在什么地方,想过去办事
你好!急求 机箱风扇应该进风量大 还是出风量
赤壁火龙赤兔怎么拥有
邮政储蓄卡打电话长期挂失了,能不能打电话变
中国体育彩票福利彩票(人民东路与人民西路交
(1)某化学反应可用下式表示:A + B == C + D +
中国福彩中国体彩(平原中路88号中国福彩中国
巨浪美容美发瑞虹店地址在哪,我要去那里办事
华硕x552mj2840多少钱。玩游戏卡不
推荐资讯
济青高速淄博服务区附近有公交车吗,在哪里,
下列不是生物体大量元素的是DA. CB. NC. MgD.
希望骨灰级的影迷推荐一些好电影, 年轻人会
潍坊市奎文区东关街道李家街社区居民委员会在
对于我们的健康有好处英语翻译
请问自贡去重庆火车站如何坐汽车?求班次、时
半岁的泰迪狗吃了两次鱼肉后现在不吃狗粮了怎
邵东一中唐志高老师怎么样
补的牙掉了,不去补会怎么样?
成都新南门车站到动物园的具体乘车路线?是最
哪些人不能喝玫瑰花茶
标准保费增长率是否越高越好?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?