易截截图软件、单文件、免安装、纯绿色、仅160KB

Java 几种排序法

这里主要对8种排序算法做个总结,分别是插入排序,选择排序,冒泡排序,希尔排序,归并排序,堆排序,快速排序以及基数排序。
1、 插入排序
比较和交换的时间复杂度为O(n^2),算法自适应,对于数据已基本有序的情况,时间复杂度为O(n),算法稳定,开销很低,适合于数据已基本有序或者数据量小的情况。
public void insertionSort() {// 插入排序

int out, in;

int count1 = 0, count2 = 0;// 复制次数,比较次数

for (out = 1; out < nElems; out++) {

long temp = a[out];

in = out;

boolean flag=in>0&&a[in-1]>=temp;

while(flag){

if(a[in-1]>=temp){

if(in>0){

a[in]=a[in-1];

count1++;

--in;

}

}

count2++;

flag=in>0&&a[in-1]>=temp;

}

a[in] = temp;

}

System.out.println("复制次数为:" + count1 + " 比较次数为:" + count2);

}

2、 选择排序
算法不稳定,O(1)的额外的空间,比较的时间复杂度为O(n^2),交换的时间复杂度为O(n),并不是自适应的。在大多数情况下都不推荐使用。只有在希望减少交换次数的情况下可以用。
public void selectionSort(){//选择排序

int out, in, min;

for(out=0;out<nElems-1;out++){

min=out;

for(in=out+1;in<nElems;in++){

if(a[in]<a[min]){

min=in;

}

swap(out,min);

}

}

}

3、 冒泡排序
算法稳定,O(1)的额外的空间,比较和交换的时间复杂度都是O(n^2),自适应,对于已基本排序的算法,时间复杂度为O(n)。冒泡算法的许多性质和插入算法相似,但对于系统开销高一点点。
public void bubbleSort() {// 冒泡排序,单项

int out, in;



相关文档:

Java语言接口与继承本质( 很经典)

大多数人认为,接口的意义在于顶替多重继承。众所周知Java没有c++那样多重继承的机制,但是却能够实作多个接口。其实这样做是很牵强的,接口和继承是完全不同的东西,接口没有能力代替多重继承,也没有这个义务。接口的作用,一言以蔽之,就是标志类的类别(type of class)。把不同类型的类归于不同的接口,可以更好的管理 ......

java 多态(2)

(本文转载)
原文:http://blog.csdn.net/thinkghoster/archive/2008/04/19/2307001.aspx
class
 A
...
{
         
public
 String show(D obj)
...
{
             &nbs ......

【转】java 词汇表速查手册

java 词汇表速查手册
http://bbs.54master.com/91318,1,109
Abstract class 抽象类:抽象类是不允许实例化的类,因此一般它需要被进行扩展继承。
Abstract method 抽象方法:抽象方法即不包含任何功能代码的方法。
Access modifier 访问控制修饰符:访问控制修饰符用来修饰Java中类、以及类的方法和变量的访问控制属性。 ......

二、新建一个java窗口

1、首先大家最好去下载一个designer 的eclipse 插件
2、然后放入eclipse 安装目录下的plugin目录下
3、重新启动eclipse
4  新建一个java swing project
5, 新建一个window,然后点运行,就会出现一个最简单的窗口。
当然,你也可以新建一个class Window,然后输入如下代码
import java.awt.Dimension;
import ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号