快速排序动态示意【Scratch】

举报
ShaderJoy 发表于 2021/11/19 00:43:07 2021/11/19
【摘要】 快速排序的核心思想是先设定一个标杆值,然后分别从无序序列的前、后进行双向遍历,从后往前是寻找比标杆值小的值,从前往后是寻找比标杆值大的值,然后调整这两个值和标杆值的位置,确保标杆值左侧的都是比它小的值,而其右侧都是比它大的值。然后下一轮递归——以标杆值作为分界,其左侧和右侧分别再重复上述过程。   效果图 第一轮,无递归...

快速排序的核心思想是先设定一个标杆值,然后分别从无序序列的前、后进行双向遍历,从后往前是寻找比标杆值小的值,从前往后是寻找比标杆值大的值,然后调整这两个值和标杆值的位置,确保标杆值左侧的都是比它小的值,而其右侧都是比它大的值。然后下一轮递归——以标杆值作为分界,其左侧和右侧分别再重复上述过程。

 

效果图

第一轮,无递归

点击    随机初始化小猫的颜色,然后点击 “舞台” 对颜色进行快速排序,我这里设置的颜色规则是 红>蓝>绿>黄。最上方的小猫是用于存储标杆值的小猫。从后往前找的过程中该小猫会跳起(上移),从前往后找,会将该小猫往下移动。待插入的小猫会保持上移(或下移)状态一段时间,这样可以更直观的看出是哪两只小猫在进行替换(同时还搭配了不同的音效),以及具体发生交换的位置在哪里。

 

合并所有序列,即有递归的过程


普通角色的代码块:

存储标杆值的代码块:

舞台的代码块:

文章来源: panda1234lee.blog.csdn.net,作者:panda1234lee,版权归原作者所有,如需转载,请联系作者。

原文链接:panda1234lee.blog.csdn.net/article/details/106094414

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。