插入排序的实现
实现逻辑
实现代码
public class Sort {
public void insetSort(int[] arr){
for (int i = 1; i < arr.length; i++) {
int j = i-1;
int temp = arr[i];
for(;j>=0;j--){
if(arr[j]>temp){
arr[j+1] = arr[j];
}else {
arr[j+1] = temp;
break;
}
}
arr[j+1] = temp;
}
return;
}
希尔排序
逻辑原理:
实现代码 :
public void shallSort(int[] arr){
int gap = arr.length;
while(gap > 1){
gap /= 2;
shall(arr,gap);
}
}
public void shall(int[] arr,int gap){
for (int i = gap; i < arr.length; i++) {
int j = i - gap;
int temp = arr[i];
for(; j >= 0;j -= gap){
if(arr[j]>temp){
arr[j+gap] = arr[j];
}else {
arr[j+gap] = temp;
break;
}
}
arr[j+gap] = temp;
}
}
}
耗时比较:
以排序十万个数据耗时做比较,单位为毫秒