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

九路 等级 614 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)
7 二分搜索树的原理与Java源码实现
1 折半查找法 了解二叉查找树之前,先来看看折半查找法,也叫二分查找法 在一个有序的整数数组中(假如是从小到大排序的),如果查找某个元素,返回元素的索引。 如下: int arr new int{1,3,4,6,8,9}; 在 arr 数组中查找6这个元素,查到返回对应的索引,没有找到就返回1 思想很简单: 1 先找到数组中间元素ta
大数据排序
一、 如何给100亿个数字进行排序?  1.1 解答: 1.把这个37GB的大文件,用哈希分成1000个小文件,每个小文件平均38MB左右(理想情况),把100亿个数字对1000取模,模出来的结果在0到999之间,每个结果对应一个文件,所以我这里取的哈希函数是 h x % 1000,哈希函数取得"好",能使冲突减小,结果分布均匀。 2.拆分完了之后
java截取url后缀以及判断是否带参数
java获取url后缀,以及判断是否带参数(?paramsxxx)java // 使用了String对象的方法截取字符串 String fileUrl "http://www.baidu.com?a1234"; int index fileUrl.lastIndexOf("?"); if (index 1) { file
golang 之快速排序
1、快速排序稳定性 快速排序是不稳定的算法,它不满足稳定算法的定义。 算法稳定性 假设在数列中存在aiaj,若在排序之前,ai在aj前面;并且排序之后,ai仍然在aj前面。则这个排序算法是稳定的! 2、快速排序
检测xposed框架实现
1.检测安装包名java private static int l(Context context) { int i 0; PackageManager packageManager context.getPackageManager(); try { packageMan
C++写一个简单排序算法
分析算法步骤:1、暂定元素排列第0个为最小值,下标为min;2、然后从左往右依次扫描,与min的关键字比较,若比min的更小,则更新min下标为当前下标;3、并且把先前的最小值与当前找到目标的元素交换位置。cinclude<iostreamusing namespace std;void Swap(int &a, int &b) int tem
Java中集合排序常用的方式
1. 集合排序概述 1.1 集合排序的主要内容: 集合中的级别数据类型排序 集合中的字符串排序 Comparator接口 Comparable接口 1.2 数组排序回顾 int[] arr12,25,22,17,89,22;Arrays.sort(arr);输出:12,17,22,22,25,89Java的Arrays类中有一个sort()方法,该方法是Ar
人工智能数学基础-线性代数5:行列式求解线性方程组和拉普拉斯定理
一、逆序及逆序数在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。也就是说,对于n个不同的元素,先规定各元素之间有一个标准次序(例如n个 不同的自然数,可规定从小到大为标准次序),于是在这n个元素的任一排列中,当某两个元素的实际先后次序与标准次序不同时,就说有1个逆序
今天就来花一点时间整理一下算法吧!
算法,就是计算机处理信息的一个步骤。是独立存在的一种处理问题的方法和思想,并不局限于具体的实现过程。 排序 冒泡cpublic static int[] BubbleSort (int[] arr) for (int i 0; i < arr.length; i++) for (int j 0; j < a
阿里Java开发手册!非科班生金九银十求职经历
1 基础 为什么 Java 中只有值传递? int 范围?float 范围? hashCode 与 equals,什么关系? String StringBuffer 和 StringBuilder 的区别是什么?String 为什么是不可变的? Java 序列化中如果有些字段不想进行序列化 怎么办? 构造器 Constructor 是
【排序算法动画解】直接插入排序
本文为系列专题的第 14 篇文章。1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 前面介绍了已经介绍了三种排序,暴力排序、冒泡排序和简单选择排序,一个共同点都是基于交换。我们可以用另一种视角来看待排序,即将一个待排序的数组看成两个部分:有序区和乱序区。在排序开始前,整个数组都是乱序区,而有序区则为空:排序开始后,有序区
最新美团点评Java团队面试题,感悟分享
1.笔试常见的问题?面试常见的问题上面给的面试题链接基本都有。我只提几点:1. 写SQL:写SQL很常考察group by、内连接和外连接。2. 手写代码:手写代码一般考单例、排序、线程、消费者生产者。我建议排序算法除了冒泡排序,最好还能手写一种其他的排序代码。试想:如果一般面试者都写的冒泡排序,而你写的是快速排序/堆排序,肯定能给面试官留下不错的印象。
(转载)Java内存区域(运行时数据区域)和内存模型(JMM) - czwbig
转载自:Java 内存区域和内存模型是不一样的东西,内存区域是指 Jvm 运行时将数据分区域存储,强调对内存空间的划分。而内存模型(Java Memory Model,简称 JMM )是定义了线程和主内存之间的抽象关系,即 JMM 定义了 JVM 在计算机内存(RAM)中的工作方式,如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java