*LeetCode-Wiggle Sort

本文详细解释了Wiggle Sort算法的工作原理,并提供了一个简洁的Java实现。通过遍历数组并根据元素的奇偶位置进行比较和交换,确保相邻元素遵循特定的排序规则。了解如何使用此算法对整数数组进行排序,使其相邻元素交替增加或减少。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

又是不知道怎么想

规律是 每两个两个之间是小于 每对之间是大于 

所以就根据 i 的奇偶性来判断两个连续数字见的关系 并且可以发现swap不会影响前面的正确 因为一对之间的关系应该是大于 假如是小于 需要swap 那么只会给前面换过去一个更大的 所以不用担心

public class Solution {
    public void wiggleSort(int[] nums) {
        for ( int i = 0; i < nums.length - 1; i ++ ){
            if ( i % 2 == 0 ){
                if ( nums[ i ] > nums [ i + 1 ] )
                    swap ( nums, i, i + 1 );
            }
            else if ( nums [ i ] < nums [ i + 1 ] )
                swap ( nums, i, i + 1 );
        }
    }
    public void swap ( int [] nums, int p1, int p2 ){
        int temp = nums[ p1 ];
        nums[ p1 ] = nums [ p2 ];
        nums[ p2 ] = temp;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值