用Java实现几种常见的排序算法

文章作者 100test 发表时间 2007:09:06 11:53:06
来源 100Test.Com百考试题网


  用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序、SortUtil等。
插入排序:
package org.rut.util.algorithm.support.
import org.rut.util.algorithm.SortUtil.
/**
* @author treeroot
* @since 2006-2-2
* @version 1.0
*/
public class InsertSort implements SortUtil.Sort{
/* (non-Javadoc)
* @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
*/
public void sort(int[] data) {
int temp.
for(int i=1.i for(int j=i.(j>0)&.&.(data[j] SortUtil.swap(data,j,j-1).
}
}
}
}
冒泡排序:
package org.rut.util.algorithm.support.
import org.rut.util.algorithm.SortUtil.
/**
* @author treeroot
* @since 2006-2-2
* @version 1.0
*/
public class BubbleSort implements SortUtil.Sort{
/* (non-Javadoc)
* @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
*/
public void sort(int[] data) {
int temp.
for(int i=0.i for(int j=data.length-1.j>i.j--){
if(data[j] SortUtil.swap(data,j,j-1).
}
}
}
}
}
选择排序:
package org.rut.util.algorithm.support.
import org.rut.util.algorithm.SortUtil.
/**
* @author treeroot
* @since 2006-2-2
* @version 1.0
*/
public class SelectionSort implements SortUtil.Sort {
/*
* (non-Javadoc)
*
* @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
*/
public void sort(int[] data) {
int temp.
for (int i = 0. i < data.length. i ) {
int lowIndex = i.
for (int j = data.length - 1. j > i. j--) {
if (data[j] < data[lowIndex]) {
lowIndex = j.
}
}
SortUtil.swap(data,i,lowIndex).
}
}
}
Shell排序:
package org.rut.util.algorithm.support.
import org.rut.util.algorithm.SortUtil.
/**
* @author treeroot
* @since 2006-2-2
* @version 1.0
*/
public class ShellSort implements SortUtil.Sort{
/* (non-Javadoc)
* @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
*/
public void sort(int[] data) {
for(int i=data.length/2.i>2.i/=2){
for(int j=0.j insertSort(data,j,i).
}
}
insertSort(data,0,1).
}
/**
* @param data
* @param j
* @param i
*/
private void insertSort(int[] data, int start, int inc) {
int temp.
for(int i=start inc.i for(int j=i.(j>=inc)&.&.(data[j] SortUtil.swap(data,j,j-inc).
}
}
}
}


相关文章


使用Jbulider开发J2ME移动游戏程序
细述Java技术开发规则--开发篇
从 M精神来看Emaker平台的价值
运用JakartaStruts的七大实战心法
用Java实现几种常见的排序算法
MouseListener的实践例子
柏林墙还没有倒下论EJB的企业梦
专业语言:简易图片浏览器
JDK1.5编译中的一个奇怪问题
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛