排序都有哪几种方法?请列举。用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;i0)&&(data[j]2;i/=2){
for(int j=0;j1) 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]pivot);
SortUtil.swap(data,l,r);
}
while(l0){
int j=stack[top--];
int i=stack[top--];
pivotIndex=(i+j)/2;
pivot=data[pivotIndex];
SortUtil.swap(data,pivotIndex,j);
//partition
l=i-1;
r=j;
do{
while(data[++l]pivot));
SortUtil.swap(data,l,r);
}
while(lTHRESHOLD){
stack[++top]=i;
stack[++top]=l-1;
}
if((j-l)>THRESHOLD){
stack[++top]=l+1;
stack[++top]=j;
}
}
//new InsertSort().sort(data);
insertSort(data);
}
/**
* @param data
*/
private void insertSort(int[] data) {
int temp;
for(int i=1;i0)&&(data[j]
用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;i0)&&(data[j]2;i/=2){
for(int j=0;j1) 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]pivot);
SortUtil.swap(data,l,r);
}
while(l0){
int j=stack[top--];
int i=stack[top--];
pivotIndex=(i+j)/2;
pivot=data[pivotIndex];
SortUtil.swap(data,pivotIndex,j);
//partition
l=i-1;
r=j;
do{
while(data[++l]pivot));
SortUtil.swap(data,l,r);
}
while(lTHRESHOLD){
stack[++top]=i;
stack[++top]=l-1;
}
if((j-l)>THRESHOLD){
stack[++top]=l+1;
stack[++top]=j;
}
}
//new InsertSort().sort(data);
insertSort(data);
}
/**
* @param data
*/
private void insertSort(int[] data) {
int temp;
for(int i=1;i0)&&(data[j]
【排序都有哪几种方法?请列举。用JAVA实现一个快速排序】相关文章
1. 排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2. Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
3. 用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
4. 如果出现ASP.NET中的事件不能触发可能由于什么原因造成?请列举至少两个
5. XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
6. 值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
7. 写出一个方法实现冒泡排序
本文来源:https://www.mianshiwenti.com/a12523.html
进入下载页面
﹝排序都有哪几种方法?请列举。用JAVA实现一个快速排序﹞相关内容
- 如何实现一个自定义类的序列化
- Hashtable 添加内容的方式有哪几种,有什么区别?
- Oracle数据库有哪几种启动方式
- Linux内核的同步机制是什么?主要有哪几种内核锁
- 现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
- mysql有关权限的表都有哪几个
- strlen的几种不同实现方法
- MVC的各个部分都有那些技术来实现?如何实现?
- 用清晨时间实现一万小时计划
- 发生劳动争议有哪些解决方法?