• 13.奇数前移,偶数后移


    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,

    使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。

    并保证奇数和奇数,偶数和偶数之间的相对位置不变。

    思想简单,想ac可没那么容易。

    1.给个队列,筛选奇数,存进队列,再筛选存入;最后取出;

    2.标记法,遇到奇数前移,移动的是上个奇数和下个奇数之间的数,下次遍历,从最后一个奇数开始,直到结束

     int j=0;//记录第一个为奇数的位置
            int m=0;//记录排好序的奇数的最后一个位置
            for(int i=0;i<array.length;i++)
            {    
                if(array[i]%2==1)//找到第一个奇数
                {
                    int temp = array[i];//记录第一个奇数
                    int ti=i;
                    for(;ti>0;ti--)
                    {
                        array[ti]=array[ti-1];//将第一个奇数之前的所有元素往后移一个位置
                    }
                    array[0] = temp;//将第一个奇数放到array[0]位置
                    j=i;
                    break;
                }
            }
            for(++j;j<array.length;j++)//依次寻找剩余的奇数
            {
                if(array[j]%2==1)
                {
                    int temp = array[j];
                    int tj = j;
                    for(;tj>m;tj--)
                    {
                        array[tj]=array[tj-1];
                    }
                    array[++m]=temp;
                }
            }
            
        }
  • 相关阅读:
    android: LayoutInflater使用
    android:ListView bbs Demo
    android:制作 Nine-Patch 图片
    android:单位和尺寸
    android:提升 ListView 的运行效率
    android:定制 ListView 的界面
    android:ListView 的简单用法
    android:创建自定义控件
    android:四种基本布局
    android:ProgressDialog控件
  • 原文地址:https://www.cnblogs.com/wzQingtTian/p/10662051.html
Copyright © 2020-2023  润新知