您的位置:首页 > 其它

给定一个数组,奇数全排在前面,偶数全排在后面

2013-10-24 21:24 549 查看
#include <iostream>#include <string>using namespace std;
//交换子函数void Swap(int* a,int* b){ int temp; temp=*a; *a=*b; *b=temp;}//循环不变量   从头开始    时间复杂度为O(n)void change(int* a,int p,int q){ int i=p-1; for(int j=p;j<=q;j++) { if(a[j]%2==1) { i=i+1; Swap(&a[i],&a[j]); } }}//循环不变量 从两端分别开始 时间复杂度为O(n)void change2(int* a,int p,int q){ int i=p,j=q; while(i<j) { while(a[i]%2==1)i++; while(a[j]%2==0)j--; Swap(&a[i],&a[j]); }}int main(){ //给定一个数组,奇数全排在前面,偶数全排在后面 int arr[10]={1,2,3,4,5,6,7,8,9,10}; change(arr,0,9); for(int i=0;i<10;i++) { cout<<arr[i]<<" "; } cout<<endl; int arr2[10]={1,2,3,4,5,6,7,8,9,10}; change2(arr2,0,9); for(i=0;i<10;i++) { cout<<arr2[i]<<" "; }

return 0;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐