插入排序:
将数据逐个采用插入的方式进行排序,这是一种简单直观稳定的排序算法
插入排序原理
采用链表
从第一个元素开始,该链表可以被认为已经部分排序),每次迭代时,从输入数据中移除一个元素,并原地将其插入到已排好序的链表中。
插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。
重复直到所有输入数据插入完为止。
采用数组
1.把所有的元素分为两组,已经排序的和未排序的组;
2.找到未排序的组中的第一个元素,向已经排序的组中进行插入;
3.倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待插入元素放到这个位置,其他的元素向后移动一位;
插入排序时间复杂度:n^2
插入排序实现步骤
//代码实现

import java.util.Arrays;

public class InsertionSort{
public static void main(String[] args) {
//创建数组
Integer[] arr = {2, 5, 10, 1, 3, 7, 4, 6, 9, 8,1};
int temp;
for (int i = 1; i < arr.length; i++) {
//当前元素为arr[i],依次和i前面的元素比较,找到小于等于arr[i]的元素
for (int j = i; j > 0; j--) {
if (arr[j - 1] > =arr[j]) {
//数据交换
temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
} else {
//结束
break;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
posted on 2021-04-10 20:54  齐天大圣龙卷风  阅读(81)  评论(0编辑  收藏  举报