网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

调整数组顺序使奇数位于偶数前面——14

   输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。

10年积累的网站设计、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有神池免费网站建设让你可以放心的选择与我们合作。

 

    首先,可以想到,用前后两个指针一个在数组首一个在数组尾同时往数组中间遍历,当遇到前指针遇到偶数后指针遇到奇数时,就将两个数交换,直到两指针相遇或者前指针超过了后指针,这个有点类似快速排序的思想;

程序设计如下:

#include 
#include 
using namespace std;

void AdjustArr(int *parr, size_t size)   //调整数组
{
    assert(parr && size);

    int *start = parr;
    int *end = parr+size-1;

    while(start < end)
    {   
        while((start < end)&&((*start % 2) != 0))//当start指针遇到偶数停止
            ++start;
        while((start < end)&&((*end % 2) == 0))  //当end指针遇到奇数停止
            --end;
        if(start < end)//判断start和end位置
        {   swap(*start, *end);
            ++start;
            --end;
        }
        else
            return;
    }   
}

void PrintArr(int *parr, size_t size)  //打印数组
{
    assert(parr && size);

    for(size_t i = 0; i < size; ++i)
    {   
        cout<

运行程序,结果:

调整数组顺序使奇数位于偶数前面——14

《完》


文章名称:调整数组顺序使奇数位于偶数前面——14
本文来源:http://bjjierui.cn/article/geejch.html

其他资讯