Java实现C++ next_permutation()算法

本文介绍如何在Java中实现C++的next_permutation算法。通过从后往前查找不满足降序的元素,交换它与大于它的下一个元素,并对后续部分进行排序,来生成下一个排列。当找不到不满足条件的元素时,表示已达到全排列末尾,返回false。

算法思路:
1.从后往前找到第一个不满足降序的数的位置,计为i。如果i为-1,则已经是最后一个全排列,返回false。
2.从i+1开始找到最后一个大于arr[i]的数,交换这两个数。
3.然后对i后面的数排序,返回true。

import java.util.Arrays;

public class Main
{
    public static void main(String[] args)
    {
        int[] arr = {
  
  1,2,3,4,5};
        do
        {
            for (int i = 0 ; i < arr.length ; i++)
                System.out.prin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值