Java算法實(shí)現(xiàn)調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)之前的講解
調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)之前
1. 題目描述
輸入一個(gè)整數(shù)數(shù)組,實(shí)現(xiàn)一個(gè)函數(shù)來(lái)調(diào)整該數(shù)組中數(shù)字的順序,使得所有的奇數(shù)位于數(shù)組的前半部分,所有的偶數(shù)位于位于數(shù)組的后半部分,并保證奇數(shù)和奇數(shù),偶數(shù)和偶數(shù)之間的相對(duì)位置不變。
2. 題目分析
該題目類(lèi)似于一個(gè)選擇排序,將奇數(shù)選擇出來(lái),放置于數(shù)據(jù)前面的位置,保持其他未被選擇的元素的相對(duì)位置不變;
- 1. 遍歷數(shù)組,當(dāng)數(shù)組元素為奇數(shù)是進(jìn)行處理,判斷條件為 n % 2 != 0
- 2. 設(shè)置一個(gè)變量標(biāo)注當(dāng)前已遍歷的元素中奇數(shù)的個(gè)數(shù)oddNum,也是將該奇數(shù)元素放置于數(shù)組中的索引
- 3. 循環(huán)將該元素前至上一個(gè)奇數(shù)(已放置好的奇數(shù)元素位于數(shù)組oddNum的位置)之間的偶數(shù)向后移一位,然后將該元素放置于oddNum+1的位置
3. 解題代碼
public class Solution { public void reOrderArray(int [] array) { int oddNum = 0; for (int i = 0; i < array.length; i++) { if (array[i] % 2 != 0) { int temp = array[i]; for (int j = i; j > oddNum; j--) { array[j] = array[j - 1]; } array[oddNum] = temp; oddNum++; } } } }
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- Java算法之?dāng)?shù)組冒泡排序代碼實(shí)例講解
- Java算法之串的簡(jiǎn)單處理
- Java算法實(shí)現(xiàn)楊輝三角的講解
- Java算法之冒泡排序?qū)嵗a
- Java算法之最長(zhǎng)公共子序列問(wèn)題(LCS)實(shí)例分析
- java算法實(shí)現(xiàn)紅黑樹(shù)完整代碼示例
- Java算法之堆排序代碼示例
- java算法之二分查找法的實(shí)例詳解
- java算法導(dǎo)論之FloydWarshall算法實(shí)現(xiàn)代碼
- java算法實(shí)現(xiàn)預(yù)測(cè)雙色球中獎(jiǎng)號(hào)碼
- Java算法之遞歸算法計(jì)算階乘
- JAVA算法起步之插入排序?qū)嵗?/a>
- JAVA算法起步之堆排序?qū)嵗?/a>
- JAVA算法起步之快速排序?qū)嵗?/a>
- 關(guān)于各種排列組合java算法實(shí)現(xiàn)方法
- Java算法之時(shí)間復(fù)雜度和空間復(fù)雜度的概念和計(jì)算
相關(guān)文章
Java的二叉樹(shù)排序以及遍歷文件展示文本格式的文件樹(shù)
這篇文章主要介紹了Java的二叉樹(shù)排序以及遍歷文件展示文本格式的文件樹(shù),是對(duì)二叉樹(shù)結(jié)構(gòu)學(xué)習(xí)的兩個(gè)很好的實(shí)踐,需要的朋友可以參考下2015-11-11JPA設(shè)置默認(rèn)字段及其長(zhǎng)度詳解
JPA是Java Persistence API的簡(jiǎn)稱(chēng),中文名Java持久層API,是JDK 5.0注解或XML描述對(duì)象-關(guān)系表的映射關(guān)系,并將運(yùn)行期的實(shí)體對(duì)象持久化到數(shù)據(jù)庫(kù)中。本文主要介紹了JPA如何設(shè)置默認(rèn)字段及其長(zhǎng)度,感興趣的同學(xué)可以了解一下2021-12-12javaweb圖書(shū)商城設(shè)計(jì)之購(gòu)物車(chē)模塊(3)
這篇文章主要為大家詳細(xì)介紹了javaweb圖書(shū)商城設(shè)計(jì)之購(gòu)物車(chē)模塊的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Java 實(shí)戰(zhàn)練手項(xiàng)目之酒店管理系統(tǒng)的實(shí)現(xiàn)流程
讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實(shí)現(xiàn)一個(gè)酒店管理系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2021-11-11SpringBoot中@ConditionalOnProperty注解的使用方法詳解
這篇文章主要介紹了SpringBoot中@ConditionalOnProperty注解的使用方法詳解,在開(kāi)發(fā)基于SpringBoot框架的項(xiàng)目時(shí),會(huì)用到下面的條件注解,有時(shí)會(huì)有需要控制配置類(lèi)是否生效或注入到Spring上下文中的場(chǎng)景,可以使用@ConditionalOnProperty注解來(lái)控制,需要的朋友可以參考下2024-01-01java利用遞歸實(shí)現(xiàn)類(lèi)別樹(shù)示例代碼
這篇文章主要給大家介紹了關(guān)于java利用遞歸實(shí)現(xiàn)類(lèi)別樹(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12springboot中自定義異常以及定制異常界面實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了springboot中自定義異常以及定制異常界面實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09