摘要: 问题描述 如果觉得不容易理解请查看底部的算法可视化 代码描述 参考 "插入排序 百度百科" "插入排序算法可视化 visualgo" "常见排序算法集合以及分析(使用Python描述)" 阅读全文
posted @ 2020-03-14 19:18 高坦的博客 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 问题描述 比较直观的排序算法.具体算法介绍参照选择排序-百科 代码描述 def selection_sort(input_arr): for i in range(len(input_arr)-1):# 假如说是四个元素的话,那么需要比较三次 min_index = i # 最小值的下标.默认当前值 阅读全文
posted @ 2020-03-14 18:58 高坦的博客 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 问题 1945年,现代计算机之父冯·诺伊曼提出归并排序. 归并排序算法:无论最好还是最坏时间复杂度均为:O(nlgn); 空间复杂度为 O(n); 是一种稳定的排序算法. 方法一:使用递归(分而治之) def merge_sort(arr): if len(arr) == 1: 首先是递归.需要找出 阅读全文
posted @ 2020-03-14 14:48 高坦的博客 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 问题描述 二分查找时间复杂度为O(log2n). 二分查找效率相对来说比较高.但是传入的数组必须是已经排好序的数组. 有两种思路: 第一种是 动态改变下标 .进行与所要查找数组进行对比.得出结果 第二种是使用递归. 动态改变数组 分解为子数组求解.进而得出结果 这个对于递归这个方法来说是比较简单的. 阅读全文
posted @ 2020-03-14 10:49 高坦的博客 阅读(297) 评论(0) 推荐(0) 编辑