Java实现奇偶数排序】的更多相关文章

1 问题描述 给定一个整数数组,请调整 数组中数的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分.要求时间复杂度为O(n). 2 解决方案 2.1 一头一尾指针往中间扫描法 package com.liuzhen.array_2; public class OddEvenSort { //解法1:一头一尾指针往中间扫描 public void getOddEvenSort1(int[] A){ if(A.length == 1) return; int begin = 0; i…
目录 1 问题描述 2 解决方案 2.1 一头一尾指针往中间扫描法 2.2 一前一后两个指针同时往后扫描法   1 问题描述 给定一个整数数组,请调整 数组中数的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分.要求时间复杂度为O(n). 2 解决方案 2.1 一头一尾指针往中间扫描法  具体代码如下: package com.liuzhen.array_2; public class OddEvenSort { //解法1:一头一尾指针往中间扫描 public void get…
判断方法(奇数): 错误判断方法:通过a%2==1来判断.(原因:负奇数对2取余的结果为-1) 正确判断方法:(1) 通过a%2!=0来判断.                          (2) 通过(a&1)==1来判断.(推荐使用,位操作,性能更优) Java代码: public class Test { public static void main(String[] args) { int[] a = { 0, 11, -11, 20, -20 }; System.out.prin…
public class JiOu { public static void main(String[] args) { int a = 11; System.out.println("这个数是" + (a % 2 == 0?"偶数":"奇数")); int b = 11; if (b % 2 ==0) { System.out.println("这个数为偶数"); } else { System.out.println(&q…
Java基础-数组常见排序方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 数据的排序一般都是生序排序,即元素从小到大排列.常见的有两种排序方式:选择排序和冒泡排序.选择排序的特点是每个元素都进行比较,二冒泡排序是数组中相邻元素进行比较.接下来我们一起来看看选择排序和冒泡排序的原理以及如何用Java代码去实现它们. 一.选择排序原理 数组中的每个元素和其它元素进行比较换位置.比如现在有以下一个数字,需要对数组中的值进行排序,要求是从小到达进行排序.我们不妨看看选择排序是如何…
数据结构中常见的内部排序算法: 插入排序:直接插入排序.折半插入排序.希尔排序 交换排序:冒泡排序.快速排序 选择排序:简单选择排序.堆排序 归并排序.基数排序.计数排序 直接插入排序: 思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成. 性能:时间复杂度:最好o(n):有序,最坏o(n^2):逆序,平均o(n^2):空间复杂度o(1):稳定 public int[] straightInsertSort(int array[]){ int tem…
LeetCode_1116 LeetCode-1116.打印零与奇偶数 假设有这么一个类: class ZeroEvenOdd { public ZeroEvenOdd(int n) { ... } // 构造函数 public void zero(printNumber) { ... } // 仅打印出 0 public void even(printNumber) { ... } // 仅打印出 偶数 public void odd(printNumber) { ... } // 仅打印出…
Java 的八种排序算法 这个世界,需要遗忘的太多. 背景:工作三年,算法一问三不知. 一.八种排序算法 直接插入排序.希尔排序.简单选择排序.堆排序.冒泡排序.快速排序.归并排序和基数排序. 二.算法使用 1 直接插入排序 使用场景: 如把新的数据插入到已排好的数据列中. 实现思想: a.将第一个数和第二个数排序,然后构成一个有序序列: b.将第三个数插入进去,构成一个新的有序序列: c.对第四个数.第五个数……直到最后一个数,重复第二步.  代码实现: /** * @author tjt *…
一.基本介绍(关于下列五个定义来自http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html#!comments,谢原博主分享) 什么是机器数:一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011.如果是 -3 ,就是 10000011 . 什么是真值:因为…
>>关于重排序 重排序通常是编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段. 重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境. >>JMM重排序的例子 >>As-if-serial语义 as-if-serial语义的意思是,所有的动作(Action)都可以为了优化而被重排序,但是必须保证它们重排序后的结果和程序代码本身的应有结果是一致的. Java编译器.运行时和处理器都会保证单线程下的as-if-serial语义.…