【排序算法3—插入排序】教程文章相关的互联网学习教程文章

冒泡排序、选择排序、快速排序、插入排序【代码】

冒泡排序 排序只对一维数据有意义. 两层循环, 第一层是遍历每一个元素. 第二层循环,让两两之间进行比较交换. 时间复杂度: O(n^2) 空间复杂度: O(1) 稳定性: 稳定的 def buble_sort(arr):for i in range(len(arr)-1):for j in range(len(arr)-i-1):if arr[j]>arr[j+1]:arr[j],arr[j+1]=arr[j+1],arr[j]return arr选择排序 选择后面的最小的和当前的元素进行对比 时间复杂度: O(n^2) 空间复杂度: O(1) 稳定性: 不稳定 def select_sor...

插入排序和归并排序【代码】【图】

插入排序思想:在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使这n个数也是排好顺序的。如此反复循环,直到全部排好顺序.(当待排序数据全部有序时,时间复杂度为O(N),最坏情况下时间复杂度为O(N*N),与待排序数据的状态有关).public class InsertSort {public static void insertSort(int[] arr) {if(arr == null || arr.length < 2)return ;for(int i = 1; i < arr.length; i++) {for(int j = ...