插入排序
本文采用Java书写选择排序,其他语言类似可以借鉴着写
- 思想:由简单到复杂,多个数进行排序,我们可以考虑一个数,两个数慢慢增加进行排序。先排好N个数,让N+1个数跟前面N个数,从后往前进行比较,小于前面的数据则交换,直到前面没有数据或者大于等于前面的数据停止。
- 效果图:下面效果图可形象表现出插入排序的过程。

算法的复杂度和稳定性
- 稳定性:
插入排序值相等时不交换,因此具有稳定性
- 复杂度:
这里仅说明时间复杂度为:O(N^2)
代码实现
public class InsertionSort {
public static void insertionSort(int[] arr)
{
if(arr == null || arr.length < 2)
return;
for (int i = 1; i < arr.length; i++) {
for (int j = i - 1; j >= 0 && arr[j] > arr[j + 1]; j--)
{
swap(arr, j, j + 1);
}
}
}
public static void swap(int[] arr, int i, int j)
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}