//插入排序
//无序的数插入到有序数组中
public class insertsort {
public static void main(String[] args) {
int[] arr={3,2,7,5,9,6,-2,8};
// insert_sort1(arr);
// print_array(arr);
insert_sort2(arr);
print_array(arr);
}
//打印数组
public static void print_array(int[] arr){
for(int i=0;i
System.out.print(arr[i]+" ");
}
System.out.println();
}
//排序方法一
public static void insert_sort1(int[] arr){
if(arr==null || arr.length<2){
return;
}
//数组长度
int n = arr.length;
//end表示每次待需要进行排序的数
for(int end=1;end
int newNumIndex=end;
//需要排序的数跟有序的数组一一进行比较
while (newNumIndex-1>=0&&arr[newNumIndex-1]>arr[newNumIndex]){
swap_location(arr,newNumIndex-1,newNumIndex);
newNumIndex--;
}
}
}
//排序方法二
public static void insert_sort2(int[] arr){
if(arr==null || arr.length<2){
return;
}
//数组长度
int n = arr.length;
//end表示每次待需要进行排序的数
for(int end=1;end
for(int pre=end-1;pre>=0&&arr[pre]>arr[pre+1];pre--){
swap_location(arr,pre,pre+1);
}
}
}
//交换位置
private static void swap_location(int[] arr, int i, int j) {
int temp = arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}