博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer-调整数组顺序使奇数位于偶数前面
阅读量:6714 次
发布时间:2019-06-25

本文共 749 字,大约阅读时间需要 2 分钟。

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

一、问题描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

二、算法思路

这是一个插入排序的变种,实际上比插入排序更加简单。

插入排序的主要任务是维护一个部分有序的数组,插入使得有序部分不断扩大。而这里的主要任务可以看作是维护一个(不改变顺序的)奇数数组,因为只要不两两交换,那么偶数的先后顺序是不会变动的,所以等排好了奇数部分,偶数部分自然也就大功告成了。

三、算法实现

3.1、Java实现版

public class Solution {    public void reOrderArray(int [] array) {        int i=-1;//i表示奇数序列最后一个元素的下标        for(int k=0;k
i+1){ array[k]=array[k-1]; k--; } array[i+1]=temp; i++; } } }}

解释:代码中的i表示的是奇数序列最后一个元素的下标。当找到新的奇数时,先将这个奇数保存,把从它往左的到第一个偶数整体往右移动一个单位,并在i+1的地方放上之前保存的奇数,到此,一趟循环已经完成。如果是偶数的话,直接跳过。

转载于:https://www.cnblogs.com/MarkKobs-blog/p/10405036.html

你可能感兴趣的文章
优朋普乐:OTT正重构电视版图
查看>>
遇到"process launch failed: Security"问题,解决的一种方法
查看>>
Ubuntu 14.04 LTC 有线网络——网线不识别,灯不亮问题
查看>>
Unity3D DLL加密
查看>>
ubuntu root用户的密码
查看>>
linux ssh配置与禁用root远程登录
查看>>
Ngios plugin for cacti(NPC)
查看>>
求数组中最长递增子序列
查看>>
前端开发面试题(收集贴)
查看>>
Spring Boot cache backed redis
查看>>
有趣的编程----控制自己电脑的CPU
查看>>
linux的目录结构
查看>>
Java中创建对象的5种不同方法
查看>>
Supervisor安装
查看>>
自建框架知识点一命名空间和自动加载
查看>>
21_css布局2_浮动布局.html
查看>>
DateUtils 单元下的公用函数目录
查看>>
构建高效安全的Nginx Web服务器
查看>>
单播,多播,广播的区分
查看>>
jQuery 练习[二]: 获取对象(1) - 基本选择与层级
查看>>