暂时整理了直接插入排序、冒泡和希尔
不说废话,直接上代码!
package paiXu;
public class Jihe {
//直接插入排序
public static void insertSort(int[] array){
int len=array.length;//数据长度
if(array!=null){
for(int i=1;i<len;i++){
int temp=array[i];//存放即将要插入的数据
int j=i;
if(array[j-1]>temp){//将temp从后往前依此比较
while(j>=1&&array[j-1]>temp){//temp大于最后一个数时
array[j]=array[j-1];//
j--;
}
}
array[j]=temp;
}
}
}
//冒泡排序
public static void bubbleSort(int[] a){
int len=a.length;//数组长度
int temp;//辅助
for(int i=len-1;i>=0;i--){
for(int j=0;j<i;j++){//从前往后依次比较
if(a[j]>a[j+1]){//前一个比后一个大,就进行交换
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
}
//希尔排序
public static void shellSort(int[] a){
int len=a.length;//数组长度
int temp;//辅助空间
int i,j,h;
for(h=len/2;h>0;h=h/2){//h表示步长,从len/2一直变化到1
for(i=h;i<len;i++){//按步长组组数,对每个组进行排序
temp=a[i];
for(j=i-h;j>=0;j=j-h){//每趟排序,根据步长将待排序列分成若干个子序列
if(temp<a[j]){
a[j+h]=a[j];
}else{
break;
}
}
a[j+h]=temp;
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array={5,4,3,7,6,8,10,1};
System.out.println("原数组:");
for(int a1:array){
System.out.print(a1+" ");
}
System.out.println();
insertSort(array);
System.out.println("插入排序后:");
for(int a1:array){
System.out.print(a1+" ");
}
System.out.println();
bubbleSort(array);
System.out.println("冒泡排序后:");
for(int a1:array){
System.out.print(a1+" ");
}
System.out.println();
shellSort(array);
System.out.println("希尔排序后:");
for(int a1:array){
System.out.print(a1+" ");
}
}
}