负数在前正数在后且顺序不变
来源:互联网 发布:java程序设计教程视频 编辑:程序博客网 时间:2024/06/10 06:27
简单说下题意: 给一个整形数组,如:1, 7, -5, 9, -12, 15,处理后使得负数在前正数在后,且负数相对顺序不变,正数亦然。即最终得到:-5, -12, 1, 7, 9, 15
写了个自己认为是O(N)复杂度的代码,贴下边,如有错误,欢迎拍砖。
#include <iostream>using namespace std;void swap(int &x, int &y){int t = x;x = y;y = t;}int a[] = {//1, 7, -5, 9, -12, 151, 6, 7, -5, 12, 9, -15};int len;int main(void){len = sizeof(a) / sizeof(*a);int *i = a, *e = a + len -1;int *j = i;while(j < e){while(*i < 0 && i < e){i++;j++;}while(*j >= 0 && j < e)j++;if(j <= e){swap(*i++, *j);int *k = i;while(k < j && *k >= 0 && *j >= 0)swap(*k++, *j);}}for(int i = 0; i < len; ++i)cout << a[i] << " ";cout << endl;return 0;}
0 0
- 负数在前正数在后且顺序不变
- 百度笔试题:负数在前 正数在后(奇数在前,偶数在后)
- 数组:奇数在前,偶数在后,要求顺序不变
- 奇数在前 偶数在后,相对顺序保持不变
- 排序使得数组负数在正数左边且按照原来的顺序
- 排序使得数组负数在正数左边且按照原来的顺序
- 二进制中1的个数、数值的整数次方,数组调整奇数在前偶数在后顺序不变 -- 漫漫算法路 刷题篇
- 假设一整型数组存在若干正数和负数,现在通过某种算法使得该数组的所有负数在正数的左边,且保证负数和正数间元素相对位置不变。时空复杂度要求分别为:o(n)和o(1)。
- 奇数位于偶数前面且顺序不变
- 奇数在前,偶数在后,可以有顺序改变
- 调整数组元素顺序,奇数在前,偶数在后
- 剑指_调整数组顺序使奇数在前偶数在后
- 不改变相对顺序,负数左边正数右边
- 将数组中负数调到正数之前,但相对位置不变
- 结束在前,开始在后
- 理想在前,现实在后
- ++在前和++在后
- 奇数在前偶数在后
- wpf 换行符
- apache2.2 虚拟主机配置(原创为zm2714的博客,转载以供以后方便查阅)
- PHP程序员最常犯的11个MySQL错误[转]
- POJ 1584 A Round Peg in a Ground Hole(凸包判定&&圆在凸包内判定)
- Eclipse使用常见错误
- 负数在前正数在后且顺序不变
- android的消息处理机制
- javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name
- IOS学习之NSString
- JD 1168:字符串的查找删除
- 【树状数组】 HDOJ 4276 A Simple Problem with Integers
- PHP实例————实现验证码功能
- android4.4.4 源码下载
- js-- || &&