算法与数据结构
土豆炒马铃薯丶
这个作者很懒,什么都没留下…
展开
-
排序-桶排序
例子:先找到最大值,看一下最大值是几位数字,此例子中 100为3位数字因此把 其他未满3位数 补0 使成为3位数因为此例子为10进制数 , 所以建立10个桶,不一定都会用到(如果是2进制 ,就是2个桶)先根据 个位数 数字多少 依次入桶再根据 十位数 入桶、出桶再根据 百位数入桶、出桶完成排序...原创 2021-04-14 19:56:00 · 67 阅读 · 0 评论 -
排序-冒泡排序(Bubble Sort)
总体思路:每次循环将最大的数字排到末尾第一次循环:将划红线的相比较,大的放后面第二次循环依次循环下去,就能搞定原创 2021-04-14 19:45:14 · 57 阅读 · 0 评论 -
排序-插入排序(InsertSort)
总体思路:每次一个新的数字都和前面的数字比较,新的数字小就往前接着比较,新的数字比前面大就在这个位置停下来例子:可以想象我们在斗地主,开始抓牌 ,每次抓到的牌都和前面一张相比,如果新的牌小 ,那么往前排,再和前面一张相比如果新的牌大 , 那么放到当前位置如图:第一次抓牌,目前手上是空的,那么抓到的第一张无论什么就是最小的。(假设为5)第二次抓牌,抓到3,和前面一张相比,3小,所以放到5前面。第三次抓牌,抓到1,和前面一张相比,1小,往前排再和前面3比,1小,再往前排...原创 2021-04-14 19:47:08 · 64 阅读 · 0 评论 -
排序-选择排序(SelectSort)
原创 2021-04-14 19:49:53 · 109 阅读 · 0 评论 -
排序-归并排序(MergeSort)
归并排序的核心思想是先让序列的左半部分有序、再让序列的右半部分有序,最后从两个子序列(左右两半)从头开始逐次比较,往辅助序列中填较小的数。原创 2021-04-14 19:50:45 · 105 阅读 · 0 评论 -
排序-快速排序(QuickSort)
不管是2.0还是1.0 面对最差的例子 时间复杂度都是O(N²)例子:假设 给出数组 [1,2,3,4,5,6,7,8]以最后一位8为标准,只搞定了8在最后面以7为标准 ,只搞定了7以此类推每一次划分只搞定了一个数字出现这种最差情况的原因, 划分值(标准值)很偏(很大或者很小)最好的情况就是 划分值为中间值快排3.0随机取一个数,和最后一个位置 交换位置 ,来作为划分值这样子出现坏情况和好情况 ,都会变成等概率事件通过数学计算 (很复杂不知道) , 时间复杂度就是 O(N..原创 2021-04-14 19:53:14 · 131 阅读 · 0 评论