JAVA排序汇总 java排序算法
package com.softeem.jbs.lesson4;
import java.util.Random;
/**
* 排序测试类
* 排序算法的分类如下:
* 1.插入排序(直接插入排序、折半插入排序、希尔排序);
* 2.交换排序(冒泡泡排序、快速排序);
* 3.选择排序(直接选择排序、堆排序);
* 4.归并排序;
* 5.基数排序。
*
* 关于排序方法的选择:
* (1)若n较小(如n≤50),可采用直接插入或直接选择排序。
* 当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。
* (2)若文件初始状态基本有序(指正序),则应选用直接插人、冒泡或随机的快速排序为宜;
* (3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。
*
*/
public class SortTest {
/**
* 初始化测试数组的方法
* @return 一个初始化好的数组
*/
public int[] createArray() {
Random random = new Random();
int[] array = new int[10];
for (int i = 0; i < 10; i++) {
array[i] = random.nextInt(100) - random.nextInt(100);//生成两个随机数相减,保证生成的数中有负数
}
System.out.println("==========原始序列==========");
printArray(array);
return array;
}
/**
* 打印数组中的元素到控制台
* @param source
*/
public void printArray(int[] data) {
for (int i : data) {
System.out.print(i + " ");
}
System.out.println();
}
/**
* 交换数组中指定的两元素的位置
* @param data
* @param x
* @param y
*/
private void swap(int[] data, int x, int y) {
相关文档:
转:Java学习路线图,专为新手定制的Java学习计划建议 收藏 转自:http://tieba.baidu.com/f?kz=692446591 怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西: 首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition, ......
一、项目版本规范:
1、版本号命名格式:
V 主版本号.次版本号.修整版本号
a.初始版本号为V1.0.0;
b.类属性或类方法的内容发生变化时,主版本号和次版本号都不变,修整版本号加 1;
c.增加了类或接口方法时,主版本号不变,次版本号加 1,修整版本号复位为0;
d.增加了类或接口时,主版本号加1,次版本号复位为0 ......
一、向上转型。
通俗地讲即是将子类对象转为父类对象。此处父类对象可以是接口。
1,向上转型中的方法调用。
看下面代码:
package com.wensefu.others;
public class Animal {
public void eat(){
System.out.println("animal eatting...");
}
}
class Bird extends Animal{
public void ......
变量:存储数据的基本单元;一个数据存储空间的表示.
基本数据类型(8种):
byte(1)-->short(2)-->int(4)-->long(8) float(4)-->double(8) boolean(1) char(2)
引用数据类型:
String、数组、类、接口、对象 ......
关于volatile
我们知道,在Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。
这在JVM 1.2之前,Java的内存模型实现总是从主存读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下
volatile关键字的使用变得非常重 ......