快速排序,快速选择排序,选择排序的区别


选择排序是对整体序列进行排序

快速排序也是对整体序列进行排序
 

 

快速选择算法是快速在未排序的数组中寻找第k小/大的元素

快速选择算法和快速排序的思想是找基准点 , 在基准点左边的都比他小,然后在基准点右边的都比大这样
但是这两个算法的目的不同
所以实现起来会有不同  快速选择算法只要选择一侧进行迭代就好了 快速排序要两侧都迭代

 

选择排序:保持最小元素在最左侧,用最左侧的元素依次和右边的元素比较,谁小谁放在左边。
步骤:
1.在未排序序列中找到最小元素,存放到排序序列的起始位置。
2.再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。
3.以此类推,直到所有元素均排序完毕。
'''
class Solution(object):
    def selectSort(self,a):
        for i in range(len(a)): #一次for循环,直接从i+1计算,就不算i前面已经排好序的数值
            for j in range(i + 1, len(a)): #一次for循环确定一个最小值.通过让i对应的值和i之后的每个值进行比较,让a[i]处于最小值
                if a[i] > a[j]: #保持a[i]最小 
                    a[i],a[j] = a[j], a[i]
        return a 
 
my_solution = Solution()
a = [9,3,8,5]
b = my_solution.selectSort(a)
print("sequence is:", b)

--------------------- 
作者:湾区Python 
来源:CSDN 
原文:https://blog.csdn.net/BTUJACK/article/details/80548249 
版权声明:本文为博主原创文章,转载请附上博文链接!

快速排序和归并排序的区别,Python代码实现

https://blog.csdn.net/BTUJACK/article/details/84196476

 

认识你是我们的缘分,同学,等等,学习人工智能,记得关注我。

 

微信扫一扫
关注该公众号

《湾区人工智能》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值