Write a function to convert the array into alternate increasing decreasing numbers:
a[0] <= a[1] >= a[2] <= a[3] >=...
Note: You should solve it in place and one pass.
Solution 1:
public void wiggle_sort(int[] arr) { int n = arr.length; if(n <= 1) return; boolean inc = true; int prev = arr[0]; for(int i=1; i<n; i++) { if((inc && prev <= arr[i]) || (!inc && prev >= arr[i])) { arr[i-1] = prev; prev = arr[i]; } else { arr[i-1] = arr[i]; } inc = !inc; } }
Solution 2:
void wiggle_sort(vector<int>& arr) { if(arr.size() < 2) return; int flag = 1; int prev = arr[0]; for(int i=1; i<arr.size(); i++) { if(prev*flag <= arr[i]*flag) { arr[i-1] = prev; prev = arr[i]; } else { // arr[i-1] = arr[i]; swap(arr[i-1], arr[i]); } flag = -flag; } }
Reference:
http://www.mitbbs.com/article_t1/JobHunting/32575573_0_1.html
相关推荐
matlab开发-Wiggle。晃动将矩阵显示为直线加上填充的波瓣,对于振荡和/或地震数据很有用。
Wiggle 用于延迟滚动的库
对一个数组进行摇摆排序使a1<a2>a3<a4>a5
用wiggle方式显示输入的地震道数据,可调增益
地震剖面图Wiggle曲线绘制与正振幅填充算法.pdf
protel99se原创电路图PCB图 WIGGLE .
wiggle
查看Wiggle物品的价格历史记录。 将项目直接添加到您的收藏夹并跟踪其价格。 使用Wiggle网站上的综合价格历史记录图。 查看每个商品的价格和库存历史记录,直接将商品添加到您的收藏夹并跟踪其价格,当价格下降时,...
这是wiggle天线仿真,经过HFSS仿真,比较通用的天线
用于地震信号的剖面生成,有助于观察采集到的信号
读取segy文件后,用于绘制单炮记录等的图像
函数 WIGGLE 应该以与原生 Matlab 函数 IMAGESC 或 IMAGE 相同的方式工作,但具有一些允许控制外观属性的补充选项。 基本上可以控制线条的颜色和方向,左右叶的颜色等等。 为了控制这些功能,必须提供一个控制字符...
摆动启动网站布局 链接到该网站是: : 这是网站设计公司的网站布局。 使用的技术: -HTML5 -CSS3 -引导程序-JavaScript -jQuery的
| _O(n)_ ~ _O(n^2)_ | _O(n)_ | Medium || Bit Manipulation, Counting Sort, Pruning| 342 | [Power of Four](https://leetcode.com/problems/power-of-four/) | [C++](./C++/power-of-four.cpp) [Python](./...
摆动鼠标摆动鼠标以防止屏幕保护程序的简短实用程序(当缺乏管理员访问权限以禁用屏幕保护程序时)用法双击wiggle_mouse.exe启动。 关闭控制台或按 Ctrl-C 停止。 您可以将可执行文件复制并粘贴到您想要的任何位置,...
#Wiggle Spreadsheet Parser ##如何使用 安装节点-有关如何安装的说明可在上找到 运行命令$ node app.js --in [path to xlsx file] --out [name of output file] 最终的JSON输出文件将在output目录中找到 或者,...
将Wiggle Hunt的价格提高到模块化网格 不要只看想要的装备,也要买! 该扩展程序通过Wiggle Hunt,将Eurorack模块的实时销售清单以及更多来自世界各地商店的清单添加到Modular Grid产品页面。 Wiggle Hunt是全球合成...
第四节:Windows下的OpenGL_OpenGL_Win32__Wiggle