数组的区间调整
2016-01-23 19:38
190 查看
给定一个数组,比如{1,2,2,2,3,3,4,5,6,6,7,7,8,8,8,9};要求进行区间调整,该数组为有序数组,令左半部分为增序,右半部分可以无序
比如这个数组,排序后左半部分就是 1 2 3 4 5 6 7 8 9,右半部分则是否增序无所谓。
思路:
设置两个变量 u 和i u初始为0 i初始为1
我们假定a【0】到a【u】为左半区间,a【u+1】到a【i】为右半区间
于是从左到右遍历
此题中 当i=1 2不等于a[u]=a[0]=1时候,交换a[u]
比如这个数组,排序后左半部分就是 1 2 3 4 5 6 7 8 9,右半部分则是否增序无所谓。
思路:
设置两个变量 u 和i u初始为0 i初始为1
我们假定a【0】到a【u】为左半区间,a【u+1】到a【i】为右半区间
于是从左到右遍历
此题中 当i=1 2不等于a[u]=a[0]=1时候,交换a[u]
#include <iostream> #include <algorithm> using namespace std; double arr[]={1,2,2,2,3,3,4,5,6,6,7,7,8,8,8,9}; int len=16; void fun1() { int u=0; int i=1; // for(;i<len;i++) { if(arr[i]!=arr[u]) { u++; swap(arr[i],arr[u]); } } } void Print() { for(int i=0;i<len;i++) cout<<arr[i]<<" "; cout<<endl; } int main() { fun1(); Print(); return 0; }
相关文章推荐
- hdu 4870
- 1084. Broken Keyboard (20)
- Hangover
- leetcode--字符串转为整型
- P24 (*) Lotto: Draw N different random numbers from the set 1..M.
- P24 (*) Lotto: Draw N different random numbers from the set 1..M.
- activiti(一)spring4+hibernate4
- springmvc头部配置文件
- leetcode之Minimum Depth of Binary Tree
- poj2524——Ubiquitous Religions(并查集)
- CRUD之delete操作
- socket接口
- Deep Learning Tutorials(一):开头语
- ZOJ 3229 Shoot the Bullet 无源汇上下界最大流
- Coreseek:第二步建索引及測试
- 面向对象设计原则
- EGit /用户指南
- pssh批量ssh操作
- IO流 文件 File
- Java Sftp上传下载文件