leetcode 上的一道题
[LeetCode] Wiggle Sort
按照题目的要求,奇数位置的数字不能够比偶数位置的数大,偶数位置的数字不能够比奇数位的数字小。可以使用贪心算法,只遍历一遍数组,将不符合条件的元素交换。
比如数组 2,1,3,4,6,7。当指针指向2时,发现偶数位小于奇数位,因此交换,得到: 1,2,3,4,6,7。以此类推以后分别得到:1,3,2,4,6,7;1,3,2,6,4,7。
这样经过一次遍历即可完成题目要求。
第二种思路是使用中位数算法,在线性时间内找到中位数,然后再遍历一次数组,比中位数小的放到偶数位,大于或者等于中位数的放到奇数位。以后实现验证下。