插入排序原理:
把所有元素分为两组,已经排序好的和未排序的。找到未排序的组中的第一个元素,向已经排序好的组中进行插入。倒序遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入元素,就把待插入元素放到这个位置,其他的元素向后移一位。
插入排序算法实现:(稳定排序)
public static void main(String
[] args
) {
int[] arr
= {8, 4, 5, 7, 1, 3, 6, 2};
sort(arr
);
for (int i
: arr
) {
System
.out
.print(i
+"\t");
}
}
public static void sort(int[] a
) {
for (int i
= 1; i
< a
.length
; i
++) {
for(int j
= i
; j
> 0; j
--) {
if(greater(a
[j
-1], a
[j
])) {
exc(a
, j
-1, j
);
} else {
break;
}
}
}
}
public static boolean greater(int v
, int w
) {
return v
> w
;
}
public static void exc(int[] a
, int i
, int j
) {
int temp
;
temp
= a
[i
];
a
[i
] = a
[j
];
a
[j
] = temp
;
}
程序执行结果:
转载请注明原文地址:https://blackberry.8miu.com/read-34868.html