Fork me on GitHub
摘要: 学习更多算法系列请参考文章:死磕算法之汇总篇 冒泡排序在排序算法中效率算最慢的一类了,但是因为它简单的缘故仍然是工作1-3年的程序员面试经常会碰到的算法问题,今天就来给大家分析一下冒泡排序的排序流程。 假如我们现在要排序的数组为[3,1,0,2,8,4,2]那么我们第一轮排序为 比较3和1,发现3比 阅读全文
posted @ 2018-06-29 22:38 石玉军 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 学习更多算法系列请参考文章:死磕算法之汇总篇 堆排序主要是运用了二叉树的性质来进行的排序。 在进行堆排序之前我们先了解一下二叉树的几个性质: 1.在排序使用二叉树的时候我们要排序的数组的第0个位置其实是不可以用的,这个时候如果我们要排序的数组为[3,1,0,2,8,4,2]时,我们首先要把它变为[0 阅读全文
posted @ 2018-06-29 22:37 石玉军 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 学习更多算法系列请参考文章:死磕算法之汇总篇 今天讲一下希尔排序,希尔排序呢,其实可以理解为插入算法排序的一个升级版了,不了解插入排序的小伙伴可以先看一下这篇文章:死磕算法之插入排序 我们知道,插入排序在进行排序时如果当数据量很大的时候,有一个很小的数据出现在了数组的最后,那么我们就要移动了这个数据 阅读全文
posted @ 2018-06-29 22:37 石玉军 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 学习更多算法系列请参考文章:死磕算法之汇总篇 快速排序是一个运用了分治法和递归算法的排序方式。 假如我们现在要排序的数组为[3,1,0,2,8,4,2]。那么在进行快速排序的时候我们先要进行一些准备: n作为一个数组中的标杆,一趟排序过后我们要把数组中所有大于n的数放在它的右边,所有小于n的放在它的 阅读全文
posted @ 2018-06-29 22:36 石玉军 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 学习更多算法系列请参考文章:死磕算法之汇总篇 相信大家都有打扑克的经历,那么我们今天的插入排序就以拿牌为例开始讲(注意只是举例,不是按打牌的规则哦) 1.我们拿到了一张牌3,我们把它放手里,现在手里有牌[3] 2.我们拿到了一张牌1,拿它与手里最后一张牌也就是3比较,发现1比3小,所以我们把它插入到 阅读全文
posted @ 2018-06-29 22:34 石玉军 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 学习更多算法系列请参考文章:死磕算法之汇总篇 假如我们现在要排序的数组为[3,1,0,2,8,4,2]。那么选择排序的排序流程为: 现在整个数组是不是已经变得有序了呢。接下来我们看图解版本 接下来上代码 选择排序讲完了。在这里温馨提示大家,学习算法时,我们没必要拘泥于代码的实现,那没有意义。我的建议 阅读全文
posted @ 2018-06-29 22:33 石玉军 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 学习更多算法系列请参考文章:死磕算法之汇总篇 这个算法查找的前提是查找的数据是有序的,我们以数组为例,使用二分查找法进行查找的时候我们应该先定义三个字段: 1.left指向数组第一个数据 2.right指向数组最后一个元素 3.mid呢指向(left+right)/2位置的元素,就是他们中间的位置。 阅读全文
posted @ 2018-06-29 22:30 石玉军 阅读(278) 评论(0) 推荐(1) 编辑