打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
奇偶排序问题
奇偶排序问题
2008-03-13 8:20
在工作笔试时经常会碰到这个问题:一个数组序列,一半为奇数,一半为偶数,重新排列使得所有奇数位于奇数下标上,所有偶数位于偶数下标上。
   这个问题在了解了快速排序算法后很容易得出答案,其实就是快速排序算法得前半部分。用两个变量even_i,odd_i分别遍历数组中下标为偶数和奇数得数,当Array[even_i]为奇数并且Array[odd_i]为偶数时就交换。代码如下;
void sort(int Array[])
{
    int even_i=0;
    int odd_i=0;
    while(odd_i<n&&even_i<n)
    {
       while(odd_i<n&&a[odd_i]%2==1)
             odd_i+=2;
       while(even_i<n&&a[even_i]%2==0)
             even_i+=2;
       if(odd_i<n&&even_i<n)
       {
             swap(a[odd_i],a[even_i]);
             odd_i+=2;
             even_i+=2;
        }

    }
}
    在vc6.0调试成功。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
剑指offer(C++)-JZ21:调整数组顺序使奇数位于偶数前面(一)(算法-其他)
【Go语言入门100题】022 奇偶分家 (10 分) Go语言 | Golang
真题VB思路简
处理数列问题的技巧之二:奇偶项分类
数列奇偶项问题的命门在哪里
odd和even 奇数 偶数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服