插入排序(两两交换)
class Main {
public static void main(String[] args) {
//插入排序
int[] arr = {23, 5, 7, 58, 80, 6, 12, 25, 46};
for ( int j = 1; j < arr.length; j++) {
for ( int i = j; i > 0; i--){
if ( arr[i] < arr[i-1] ) swap(arr, i, i-1);
}
}
print(arr);
}
static void swap(int[] arr, int m, int n){
int temp = arr[m];
arr[m] = arr[n];
arr[n] = temp;
}
static void print(int[] arr){
System.out.println("输出数组:\n");
for ( int i = 0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
}
}
插入排序(判断值存入temp后要移动的值直接往后移,找到位置后再将temp插入)
class Main {
public static void main(String[] args) {
//插入排序
int[] a = {15, 84, 2, 60, 5, 49, 37, 19};
for ( int j = 1; j < a.length; j++){
int temp = a[j];
for ( int i = j; i >= 0; i--){
if ( i == 0 ){
a[0] = temp;
} else {
if ( temp < a[i-1] ) {
a[i] = a[i-1];
} else {
a[i] = temp;
i = 0;
}
}
}
}
print(a);
}
static void print(int[] a){
for ( int i = 0; i < a.length; i++){
System.out.print(a[i] + " ");
}
}
}
这种方式是自己写的一种尝试性的写法,感觉有点繁琐,若有朋友有更好的写法请留言!