Qt5-可视化九大经典排序算法(三、四、五)选择排序、堆排序、希尔排序

有了前两篇文章的基础(冒泡排序插入排序的传送门),到这里可以加快速度,就将这三个排序算法放在了一起写了,以免一篇文章字数过少。

1.选择排序

先引用下Wiki(或百度百科)的介绍:

计算机科学中选择排序是一种排序算法,特别是就地 比较排序。它具有On^2)时间复杂度,使其在大型列表上效率低,并且通常比类似的插入排序更差。选择排序因其简单性而着称,并且在某些情况下具有优于更复杂算法的性能优势,特别是在辅助存储器有限的情况下。

该算法将输入列表分为两部分:已经排序的项目子列表,在列表的前面(左侧)从左到右构建,以及剩余要排序的项目的子列表占用其余部分。名单。最初,排序的子列表为空,未排序的子列表是整个输入列表。该算法通过查找未排序子列表中的最小(或最大,取决于排序顺序)元素,与最左边的未排序元素(将其按排序顺序)交换(交换),并将子列表边界向右移动一个元素来继续。

具体实现代码如下:

void Bubble::goChoice()
{
    for (int i = 0;i 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值