快速排序的实现方法

已锁定

1Shadow1

  • 帖子

    156
  • 精华

    6
  • 被关注

    77

论坛等级:侠士

注册时间:2013-12-11

白金 白金 如何晋级?

快速排序的实现方法

2271

16

2024-06-21 14:49:07

快速排序相对于相对于冒泡,选择等排序方法,在处理大量无序数据的时候速度更快,并且不占用额外空间;但是确实是有一定难度的,首先是这种排序思想的理解,其次是代码的实现,我也是花了几天的业余时间才写出来的,见笑了;

少量数据的话建议使用冒泡,选择等方法;


实现原理:此次使用的是递归的方法实现的;不熟悉递归的可以看我之前写过的一篇汉诺塔的例子: 汉诺塔-SCL


实现步骤: 在待排序数组中选取任意数字(此处默认选择了第一个数字),统计小于选取数字的数量,然后把被选取数字和对应数量的位置做交换(比如小于选取数字的数量是5,数组下标从0开始,那么就把被选取数字和第5个数字进行交换),这样 就拍好了选取数组的位置,然后把选取数字的左右2边数字当成2个新的数组进行排序;当新的数组左边是0 或者1 个元素数组的情况下,则不做处理;若是2个元素的数组,就直接比较大小,判断是否要交换位置;若是大于2个元素的数组,则重复上面的整个过程;


完整的TIA SCL 程序如下:



排序效果:


并且可以实现对数组的局部进行排序;


快速排序的实现方法 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11155条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。