本例子实现了一些常见的排序算法,注释中也有一些关于这些算法的思想的描述,这里不做多,使用Java实现基本排序算法,直接上代码。
import java.awt.List;
import java.util.ArrayList;
import java.util.Hashtable;
/**
* @ClassName: Sort
* @Description: //默认按照升序排序
*
*/
public class Sort {
/**
*
* @Description: 直接插入排序
* @author 陈杰
* @date 2016年10月7日 下午9:08:26
* @param arr
*/
public void directlyInsertSort(int[] arr){
if(arr==null||arr.length==0)
return;
//int i,j;
//初始默认arr[0]为已排好的序列
for(int i=1;i<arr.length;i++){
int temp=arr[i];
for(int j=i-1;j>=0;j--){
if(arr[j]>temp){
arr[j+1]=arr[j];//元素向后移动一位
arr[j]=temp;
}
}
}
//打印排序后结果
for(int value:arr){
System.out.print(value+" ");
}
}
/**
*
* @Description: 希尔排序 (这里用一句话描述这个类的作用)
* @author 陈杰
* @date 2016年10月8日 下午7:24:16
* @param arr
* @param n
*/
public void shellSort(int arr[],int dk){
int temp=0;
for(int d=dk;d>0;d=d/2){
for(int i=d;i<arr.length;i++){
temp=arr[i];
//int index=-1;//待插入的位置
for(int j=i-d;j>=0;j=j-d){
if(arr[j]>temp){
//index=j;
arr[j+d]=arr[j];//元素向后移动一位
arr[j]=temp;
}
}
}
}
//打印排序后结果
for (int value : arr) {
System.out.print(value + " ");
}
}
/**
*
* @Description: 折半插入排序
* @author 陈杰
* @date 2016年10月8日 上午10:27:07
* @param arr
*/
public void halfInsertSort(int[] arr){
if(arr==null||arr.length==0)
return;
int i,j,low,high,mid;
for(i=1;i<arr.length;i++){
mid=0;
&n