java排序算法
//三种排序插入排序 待续
public void insertSort(int[] arry){//插入排序
int j,i=1;
int temp;//临时变量
for(;i<arry.length;i++){
temp=arry[i];
for(j=i-1;j >=0 && arry[j]>temp;j--){//将较大数逐个后移
arry[j+1] = arry[j];
}
arry[j+1]=temp;
}
}
public void twoInsertSort(int a[]) {//二叉插入排序算法
for(int i=0;i<a.length;i++){
int temp = a[i];
int left=0;
int mid =0;
int right=i-1;
while(left<=right){
mid = (left + right) / 2;
if (temp < a[mid]) {
right = mid - 1;
} else {
left = mid + 1;
}
}
for ( int j = i - 1; j >= left; j--) {
a[j + 1] = a[j];
}
if (left != i) {
a[left] = temp;
}
}
}
public void sellSort(int a[]){//希尔排序
int dk = a.length/2;
while(dk>=1){
sellInsterSort(dk, a);
dk=dk/2;
}
}
public void sellInsterSort(int dk,int a[]){
for (int i = dk; i < a.length; i++) {
// 待插入元素
int temp = a[i];
int j;
for (j = i - dk; j >= 0 && a[j] > temp; j = j-dk) {
// 将大于temp的往后移动dk位
a[j + dk] = a[j];
}
a[j + dk] = temp;
}
}
public void display(){
for(int a:array){
System.out.print(a+"-");
}
}
}
chart.js/