zoukankan      html  css  js  c++  java
  • 面试题14:调整数组顺序使奇数位于偶数前面

    // 面试题14_调整数组顺序使奇数位于偶数前面.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include <iostream>
    using namespace std;
    void swap(int *begin,int *end)
    {
        int temp;
        temp=*begin;
        *begin=*end;
        *end=temp;
    }
    
    
    void ReorderOddEven(int *pData,unsigned int length)
    {
        if(pData==NULL||length==0)
            return;
        int *begin=pData,*end=(pData+length-1);
        while(begin<end)
        {
            while((*begin)%2==1)
                begin++;
            while((*end)%2==0)
                end--;
            if(begin<end)
                swap(begin,end);
        }
    
    }
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        int pData[]={1,2,3,4,5,6,7,8,9,10};
        ReorderOddEven(pData,sizeof(pData)/sizeof(int));
        for(int i=0;i<sizeof(pData)/sizeof(int);i++)
        {
            cout<<pData[i]<<" ";
        }
        cout<<endl;
        return 0;
    }

    思路:1、begin指向第1个位置,end指向最后一个位置;

    2、begin找到第一个为偶数的,end找到第一个为奇数的位置;

    3、交换

    4、若begin>end,重复2;

  • 相关阅读:
    16.什么是面向对象编程?
    15.运动
    14.this指向和ES6常用内容
    13.正则表达式
    12.事件模型
    11.event事件对象
    10.BOM
    9.DOM
    拓扑排序学习(复习)笔记
    [Luogu] P1987 摇钱树
  • 原文地址:https://www.cnblogs.com/Mikuroro/p/4600808.html
Copyright © 2011-2022 走看看