![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
小菜的OnePiece
这个作者很懒,什么都没留下…
展开
-
数据结构与算法之归并排序
1. 归并排序原理归并排序的思想是分而治之。什么意思呢?就是把一件大的问题拆分成很多小问题来解决,先解决一个个小问题,最后大问题就随之解决了。如上图,假设需要对上面的数组进行排序。分而治之看待这个问题:将数组分成两半,那么整个问题就演变成左边需要排好序,右边也需要排好序,最后把左边排好序的数组和右边排好序的数组进行合并。左边的数组又如何排序呢?同样将数组对半分成【1,4】和【6,7,10】,排好左边和右边的数组再合并。依上写出归并排序的伪步骤:将数组分成左右两半左边用归并排序排好序右边用归原创 2021-04-01 14:24:04 · 95 阅读 · 0 评论 -
数据结构与算法之希尔排序(一步一步带你学会希尔排序)
1. 希尔排序思想希尔排序从原理上看是插入排序的升级版。如上图所示,希尔排序首先选择一个步长(假设gap=4)。先把{9,5,10,1}这四个数按照插入排序排好位置,然后再将第二组{6,12,15,13}也按照插入排序排好,后面重复以4为步长组合的数组插入排序。经过第一轮以4为间隔的组合数组排序后,这个数组就会变得基本有序了。但是也只是基本有序,所以还需要再次缩小步长继续重复上述插入排序,直到步长为1的时候就是插入排序了。为什么希尔排序的效率比插入排序高?当数组很长的时候,当有一个1在数组原创 2021-03-30 00:37:21 · 784 阅读 · 0 评论 -
数据结构与算法之插入排序
1. 插入排序原理插入排序类似于我们斗地主的时候摸扑克牌。摸牌的时候,我们都会把牌给从左到右依照从小到大的顺序排好序,这样出牌的时候就比较清楚明了。牌堆类比为一个数组,从牌堆中摸取第1张牌,放入手中,这时候因为手里本来就没有牌,所以不用比较排序直接拿到手中,假设摸到的牌是红桃10。接着从牌堆中摸取第二张牌(黑桃3)这时你下意识就会拿这张牌和你手上的牌比较,然后将其插入到正确的位置(插入到红桃10的左边)。后面的操作就是反复重复比较插入,最后你手上的牌就变成有序的了。2. 插入排序算法实现有时候算法比原创 2021-03-28 20:56:44 · 241 阅读 · 0 评论 -
数据结构与算法之选择排序
1. 选择排序思想选择排序就好像咱们排队一样,在新学期的第一节体育课的时候,老师都会先让我们排队,初次排队的顺序肯定不是由矮到高的。老师需要将队伍按照从小到大的顺序排列,他的做法就是由前往后走,看到最矮的我(哎!一直到高中我都是班上最矮的一个),然后把我拉到第一个.接着从我后面开始比较,把倒数第二矮的排在我的后面。依此方法就能将队伍由矮到高的排列整齐了。2. 程序实现import java.util.Random;public class SelectionSort { // 选择排序原创 2021-03-27 19:48:14 · 85 阅读 · 0 评论