一个int数组,奇数排前,偶数排后,算法实现

九路 等级 793 0 0
标签: Java
   //奇数排前,偶数排后
    public static void sortOdd(int[] data){
        int l = 0;
        int r = data.length - 1;

        while (l < r){
            while (l < r && data[r] % 2 == 0)
                r--;

            while (l < r && data[l] % 2 == 1)
                l++;

            Utils.swap(data,l,r);
        }
    }
收藏
评论区

相关推荐

Java实现排序算法
//冒泡排序 public static void bubbleSort(int data) { int n data.length; for (int i 0; i < n; i) { for (int j 0; j < n; j) { if (
一个int数组,奇数排前,偶数排后,算法实现
//奇数排前,偶数排后 public static void sortOdd(int data){ int l 0; int r data.length 1; while (l < r){ while (l < r && datar % 2 0)
C++写一个简单排序算法
分析算法步骤:1、暂定元素排列第0个为最小值,下标为min;2、然后从左往右依次扫描,与min的关键字比较,若比min的更小,则更新min下标为当前下标;3、并且把先前的最小值与当前找到目标的元素交换位置。cinclude<iostreamusing namespace std;void Swap(int &a, int &b) int tem
C 语言实例
30 个人在一条船上,超载,需要 15 人下船。 于是人们排成一队,排队的位置即为他们的编号。 报数,从 1 开始,数到 9 的人下船。 如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢? #include<stdio.h> int c = 0; int i = 1; int j = 0;
C语言函数和汇编函数相互调用(转)
在C程序main函数中,接收用户输入任意个整数,然后在main中调用使用ARM汇编编写的函数(在该函数中完成对这些整数的排序功能),然后再在C程序main函数中输出这些排好顺序的整数。 //main.c #include <stdio.h> int main() {     int i=0;
(CSDN 迁移) JAVA多线程实现
前几篇文章中分别介绍了 单线程化线程池(newSingleThreadExecutor) 可控最大并发数线程池(newFixedThreadPool) 可回收缓存线程池(newCachedThreadPool) newScheduledThreadPool用于构造安排线程池,能够根据需要安排在给定延迟后运行命令或者定期地执行。 在JAVA文档的介绍
JAVA 中数组的几种排序方法
1、数组的冒泡排序 public void bubbleSort(int a[]) { int n = a.length; for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1; j++)
Java中使用Timer和TimerTask实现多线程
Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。 测试代码: import java.util.TimerTask; public class OneTas
Java比较器
#### 前言 本篇文章主要介绍的是Java比较器的实现与测试。 #### 1.java.lang.Comparable排序接口 ###### 定义: Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays
Jdk 6 学习记录
java.util.Arrays 类 // 自然排序 Arrays.sort(Object[] obj); // 自然排序,在指定范围内 Arrays.sort(Object[] obj,int fromIndex,int toIndex); // 在数组中找指定Key,返回索引(
java中几种排序的实现
1.最简单的冒泡排序 /\*\* \* 冒泡排序 \*/ public static void bubbleSort(){ int\[\] arr = {5,8,1,2,9,8,7,4}; System.out.println("排序前的数组为:" ); for (int num : arr){ System.o
java堆排序(大根堆)
实现堆排序的算法思路是先创建堆,也就是从叶子节点起对每一层的孩子节点及其对应位置的父亲节点进行比较,较大的孩子节点替换较小的父亲节点,一级一级比较替换,就创建出了大根堆,小根堆反之。创建好大根堆以后,我们,将整棵树的根节点与最后最后一个节点替换位置,然后去除最后一个节点,在创建一个新的大根堆,以此类推,完成排序。代码如下: /\*\* \* <p>堆排
java开发C语言编译器:把C实现的快速排序算法编译成jvm字节码
有了前面一系列的铺垫和准备后,我们终于能走到至关重要的一刻。在本节,我们将用C语言开发快速排序算法,然后利用我们的编译器把它编译成java字节码,让C语言编写的快速排序算法能在java虚拟机上顺利执行,完成本节内容后,编译器可以正确的将下列代码编译成java字节码: void quicksort(int A[10], int p, int r) {
Leetcode 703. 数据流中的第K大元素
### 1.题目要求 设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。 你的 **`KthLargest` 类**需要一个同时接收整数 `k` 和整数数组`nums` 的构造器,它包含数据流中的初始元素。每次调用 **`KthLargest.add`**,返回当前数据流中第K大的元素。 **示例:**
Lucene 源码分析之倒排索引(二)
本文以及后面几篇文章将讲解如何定位 Lucene 中的倒排索引。内容很多,唯有静下心才能跟着思路遨游。 我们可以思考一下,哪个步骤与倒排索引有关,很容易想到检索文档一定是要查询倒排列表的,那么就从此处入手。检索文档通过调用 IndexSearcher.search(Query query, int n) 方法返回匹配的文档。 public cla