algorithm
Selenium399
这个作者很懒,什么都没留下…
展开
-
二分查找
文章目录一、原理二、举例三、 代码实现四、优缺点 一、原理 对于有序的数组,不是顺序的查找,而是折半的查找,对比查找的值与数组中间值,逐步缩短查找范围。 时间复杂度: 最好(直接命中)O(1) 最坏(最边缘命中) O(log2n) 空间复杂度: 常规O(1) 递归O(log2n) 二、举例 arr = {1,2,3,4,5,6,7,8,9,10} low: 左边界 high: 右边界 ...原创 2020-04-14 17:06:44 · 172 阅读 · 0 评论 -
希尔排序
文章目录一、原理二、举例三、代码实现四、优缺点 之前我们学习过插入排序,我们知道插入排序在处理倒序的数组时,比如{10,9,8,76,5,4,3,2,1}时,需要将1一步一步的移动到10的位置,如果数据量很大,很明显这很消耗性能。如果我们不一步一步的移动呢?这就是希尔排序。 一、原理 希尔排序属于进阶版插入排序(建议先看插入排序),它规定一个增量h,通过增量h分组,在组内先直接插入排序,排好序...原创 2020-04-14 15:28:36 · 108 阅读 · 0 评论 -
插入排序
文章目录一、插入排序二、举例三、代码实现四、优缺点 一、插入排序 从第二个元素开始,将后面的元素与前面的有序数组从后往前比较,将所有比它的大的往后移一位,找到合适的位置。 空间复杂度: O(1) 时间复杂度:O(n*2) 稳定性:稳定 二、举例 arr={10,8,5,6} 第一次: 10向后移动,再将原来位置赋值为8 temp =8 {10,10,5,6}—>{8,10,5,6} 第二...原创 2020-04-14 13:30:17 · 186 阅读 · 0 评论 -
选择排序
文章目录一、原理:二、举例三、代码实现四、优缺点 一、原理: 第一次选择出最小的元素与第一个元素交换,第二次从剩余元素中选择出最小的与第二个元素交换,以此类推.。 时间复杂度:O(n^2) 空间复杂度O(1) 稳定性:不稳定(存在元素交换,比如{2,2,1},第一次第一个2会与1进行元素交换) 二、举例 arr ={5,4,3,2,1} 第一次: {1,4,3,2,5} 第二次:{1,2,3,4,...原创 2020-04-14 10:14:09 · 281 阅读 · 0 评论