当前位置 博文首页 > 文章内容

    剑指 Offer 21. 调整数组顺序使奇数位于偶数前面(插入排序)

    作者: 栏目:未分类 时间:2020-08-29 11:02:30

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    1.剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

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

    思路:插入排序,遍历数组,记录奇数的个数,当nums[i]元素为奇数时,将其一直前移,直到移动到nums[oddcount]的位置,停止移动,开始下一个循环。如果是偶数,不做操作。

    class Solution {
        public int[] exchange(int[] nums) {
            int len = nums.length;
            int Oddcount = 0;
            for(int i=0;i<len;i++){
                if(nums[i]%2!=0){
                    int j=i;
                    while(j>Oddcount){
                        int Temp = nums[j];
                        nums[j] = nums[j-1];
                        nums[j-1] = Temp;
                        j--;
                    }
                    Oddcount++;
                }
            }
            return nums;
        }
    }