设为首页 加入收藏

TOP

Java的各种排序方法
2014-11-24 02:45:51 来源: 作者: 【 】 浏览:15
Tags:Java 各种 排序 方法

用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;ifor(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;ifor(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 QuickSort implements SortUtil.Sort{


/* (non-Javadoc)
* @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
*/
public void sort(int[] data) {
quickSort(data,0,data.length-1);
}
private void quickSort(int[] data,int i,int j){
int pivotIndex=(i+j)/2;
//swap
SortUtil.swap(data,pivotIndex,j);


int k=partition(data,i-1,j,data[j]);
SortUtil.swap(data,k,j);
if((k-i)>1) quickSort(data,i,k-1);
if((j-k)>1) quickSort(data,k+1,j);


}
/**
* @param data
* @param i
* @param j
* @return
*/
private int partition(int[] data, int l, int r,int pivot) {
do{
while(data[++l]while((r!=0)&&data[--r]>pivot);
SortUtil.swap(data,l,r);
}
while(lSortUtil.swap(data,l,r);
return l;
}


}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java文件上传下载 下一篇嵌入式GUI FTK详细介绍

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: