![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
是事可可
真真正正小白一个。博客只为记录思考错误与思路。欢迎交。勿喷。
展开
-
排序算法-插入排序
将arr[n]数组看作两个数组,其中一个有序,一个无序。 开始时,有序数组只包含arr[0],无序数组为arr[1]-arr[n-1]。从无序数组中取出一个元素arr[1],在有序数组中寻找它合适的位置,然后进行插入,形成新的有序数组。 时间复杂度O(n^2) 空间复杂度O(1) 稳定算法 分步解析: //逐步推导 //第一轮结果{3,17,25,14} ...原创 2020-03-21 20:28:57 · 101 阅读 · 0 评论 -
排序算法-简单选择排序
1、arr[0]-arr[n-1]的数组中选择一个最小值min,并与arr[0]的元素进行交换 2、arr[1]-arr[n-1]的数组中选择最小值min,并与arr[1]的元素进行交换 … 以此类推,每次在(i+1)-(arr.length-1)之间选择最小值,总共进行arr.length-1次 时间复杂度:O(n^2) 空间复杂度O(1) 不稳定算法(如果在原序列中,a在b的前面,那么在排序过...原创 2020-03-21 20:23:11 · 114 阅读 · 0 评论 -
排序算法-冒泡排序
冒泡排序思想: 序列从前向后,依次比较元素大小,如果比后面的元素大,则进行交换。从而实现将大的元素沉到数组最后。 优化:在一次排序过程中如果没有发生任何交换,则认为数组为有序数组,可以提前结束。 复杂度: 平均时间复杂度为O(n^2) 最坏时间复杂度O(n^2) 空间复杂度O(1) 稳定算法 分步过程: //第一趟排序将最大的元素交换到最后 for(int i =0...原创 2020-03-21 19:56:44 · 83 阅读 · 0 评论