八大排序算法
文章平均质量分 55
Keep Running!
你不一定要逆风翻盘,但一定要向阳而生!
展开
-
小白日更第二十八天->八大排序之归并排序
没看过我的冒泡排序、选择排序、插入排序、希尔排序、快速排序的小伙伴,可以花几分钟时间把前面这些排序算法先看一下(大神请跳过) 开始今天的学习吧~ 归并排序的大致流程: 先把一个数组一分为二 两个数组再分别一分为二 直到分组后的数组只剩两个元素,对两个元素进行比较 然后把拆分的数组再进行合并 其实归并排序大概就是采用分治的思想 这里我借用一个别人博客的图片方便大家理解 图片来源 其实大致的思路、流程小伙伴们都应该清楚了,主要是代码实现 那就不多bb,写代码吧 代码写完了吗~ 上面的代码是合治的 下面原创 2021-03-26 17:56:53 · 95 阅读 · 1 评论 -
小白日更第二十七天->八大排序之快速排序
有了前面的基础,暗示着没有看我的冒泡排序、选择排序、插入排序、希尔排序的小伙伴快去花几分钟的时间把前面比较基础的排序算法先搞清楚,再来看这篇快速排序算法吧~ 然后你就看我操作就完事! ...原创 2021-03-26 12:04:11 · 69 阅读 · 0 评论 -
小白日更第二十六天->八大排序之希尔排序
关于希尔排序我还是建议先花10分钟把我的冒泡排序、选择排序、插入排序这三篇文章先看一下,有一个循循渐进的过程,思考一下这八大排序算法是怎么一步一步优化过来的,每个算法都解决了什么问题。我觉得这样更有助于我们对八大排序算法的理解。 希尔排序 大概思路是这样: 先把数组分为数组长度/2个子数组,比如现在数组一共有10个元素,那10/2得5,我们就把数组分为五个子数组 每个子数组一次进行排序,排序也很简单,每个子数组直接进行插入排序就好了 排好顺序之后再进行/2操作,也就是5/2=2,那现在就把数组分为两个子原创 2021-03-25 23:01:10 · 118 阅读 · 0 评论 -
小白日更第二十五天->八大排序之插入排序
我在上两篇文章中已经讲了冒泡排序和选择排序没有看的小伙伴可以先花10分钟看一下这两个排序算法,应该算是排序算法中最简单的两个了。然后我们再慢慢了解剩下的六种排序算法。 插入排序大致流程 先把数组的第一个元素当作参考。 获取下一个元素,与第一个元素进行比较 找到合适的位置后,再获得下一个元素。因为我们是每次获得数据后,并找到合适的位置放入数据,再获得下一个数据,拿前面就是排好顺序的,剩下的元素依次在排好顺序的元素中找到合适的位置插入就可以了。 看一下动图就明白了。 代码实现: public static原创 2021-03-25 14:46:48 · 96 阅读 · 1 评论 -
小白日更第二十四天->八大排序之选择排序
选择排序(Selection-sort)其实是一种比较简单直观的排序算法。 算法原理 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 借助这个动图可以方便大家理解。 不多bb,看代码: public static int[] paixu(int[]array){ int max=0; int temp=0; for (int i =原创 2021-03-25 12:47:09 · 84 阅读 · 0 评论 -
小白日更第二十三天->八大排序之冒泡排序
关于八大排序算法相信很多小伙伴应该都有所了解,但我也仅仅是了解。今天想花一天时间把八大排序整理一下,把每个排序算法都自己理清楚思路之后,然后自己手敲一遍。接下来就一起学习吧~ 冒泡排序应该算是最简单的排序算法了,相比于其他七个排序算法也是相对容易实现的。 具体过程 首先我们对一个数组进行遍历,在遍历的时候我们依次对比相邻的两个元素,注意是相邻的元素,这样我们在进行完一轮遍历的时候就会把当前数组中最大或者最小的元素排到数组的最后,这样我们使用双重for循环可以把数组元素中第一大,第二大,第三大。。。依次完成原创 2021-03-25 11:11:30 · 109 阅读 · 0 评论