第二十七章:不改变正负数之间相对顺序重新排列数组
2014-02-11 11:47
267 查看
一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的正负数之间相对顺序。
比如: input: 1,7,-5,9,-12,15 ,ans: -5,-12,1,7,9,15 。且要求时间复杂度O(N),空间O(1) 。
没有什么很好的方法
比如: input: 1,7,-5,9,-12,15 ,ans: -5,-12,1,7,9,15 。且要求时间复杂度O(N),空间O(1) 。
没有什么很好的方法
#include <iostream> #include <algorithm> #include <functional> using namespace std; void sort(int* arr, int length) { if(length < 1 || NULL == arr) { return; } int* p = arr; int* q = arr; int* pos = q; while(p <= arr + length - 1) { if(*p < 0) { swap(*p,*q); pos = q; while(pos < p) { ++pos; swap(*p,*pos); } ++q; } ++p; } } int main() { int arr[]={1,-1,3,4,-3,2,-5,9,-1,8}; sort(arr,10); for_each(arr,arr+10,[](int i){cout<<i<<endl;}); }
相关文章推荐
- 第二十七章:不改变正负数之间相对顺序重新排列数组.时间O(N),空间O(1)
- 程序员编程艺术第二十七章:不改变正负数相对顺序重新排列数组(无解?)
- [算法学习]不改变正负数之间相对顺序重新排列数组.时间O(N),空间O(1)
- 不改变正负数之间相对顺序重新排列数组
- 一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的正负数之间相对顺序。 要求时
- 一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的正负数之间相对顺序,比如: input: 1,7,-5,9,-12,15 ans: -5,-12,1,7,9,15 要求时
- 算法,不改变正负数之间相对顺序重新排列数组.时间O(N),空间O(1)
- 一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的正负数之间相对顺序,比如: input: 1,7,-5,9,-12,15 ans: -5,-12,1,7,9,15 要求时
- 不改变正负数之间相对顺序重新排列数组
- 程序员编程艺术第二十七章:不改变正负数相对顺序重新排列数组(无解?)
- [算法学习]不改变正负数之间相对顺序重新排列数组.时间O(N),空间O(1)
- 程序员编程艺术第二十七章:不改变正负数相对顺序重新排列数组(无解?)
- 程序员编程艺术第二十七章:不改变正负数相对顺序重新排列数组(无解?)
- 不改变正负数之间相对顺序重新排列数组(时间O(N),空间O(1))
- 程序员编程艺术第二十七章:不改变正负数相对顺序重新排列数组(无解?)
- 不改变正负数之间相对顺序重新排列数组.时间O(N),空间O(1)
- 不改变正负数之间相对顺序重新排列数组(时间O(N),空间O(1))(桶排序)
- 一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的相对顺序.
- 不改变正负数相对顺序重新排列数组
- 不改变正负数相对顺序重新排列数组