一个最简单的排序算法,适用于数组元素比较少的时候用.
分析:
- 第一个元素和第二个元素比较,如果第一个元素大,两个元素进行互换,如果小,比较结束,进行下一次比较
- 第二个元素和第三个元素比较,如果第二个元素大,两个元素进行互换,之后在和前面的元素比较,直到结果小的时候比较结束
- …
- 第n个元素和第n+1个元素比较…
核心代码:
for(int x=1;x<arr.length;x++) {
for(int y=x;y>0;y--) {
if(arr[y] < arr[y-1]) {
int temp = arr[y];
arr[y] = arr[y-1];
arr[y-1] = temp;
}else {
break;
}
}
}
全部代码显示:
public class InsertTest {
public static void main(String[] args) {
int[] arr = {12,41,55,73,36,98};
System.out.println("未比较前的元素:");
printArray(arr);
System.out.println("插入排序后的元素:");
insterArray(arr);
printArray(arr);
}
//插入排序
public static void insterArray(int[] arr) {
//插入排序
for(int x=1;x<arr.length;x++) {
for(int y=x;y>0;y--) {
if(arr[y] < arr[y-1]) {
int temp = arr[y];
arr[y] = arr[y-1];
arr[y-1] = temp;
}else {
break;
}
}
}
}
//遍历
public static void printArray(int[] array) {
System.out.print("[");
for(int x=0;x<array.length;x++){
if(x==array.length-1){
System.out.println(array[x]+"]");
}else{
System.out.print(array[x]+", ");
}
}
}
}