python的选择排序

本文介绍了Python中选择排序算法的实现,通过定义一个SelectSort类,实现了选择排序的方法sort,该方法通过比较找到最小元素的索引并进行交换,最终完成排序。此外,还包含了一个get_min辅助函数用于比较两个元素的大小。示例展示了如何使用该类对混合数据类型的列表进行排序。
摘要由CSDN通过智能技术生成
# -*- coding: utf-8 -*-
# @File  : selectsort.py
# @Author: bruce
# @Date  : 2021/5/24
# @Desc  :再忙也算法1

class SelectSort():
    '''
    python家族万物皆对象,有了对象就有类
    '''

    def __init__(self, ls):
        self.ls = ls

    def sort(self):
        # 选择排序,记录index,最后交换
        lens = len( self.ls )

        if lens > 1:

            for i in range( lens ):

                min_index = i
                n = i
                while n < lens - 1:
                    n += 1
                    if self.get_min( self.ls[min_index], self.ls[n] ):
                        min_index = n
                        
                self.ls[i], self.ls[min_index] = self.ls[min_index], self.ls[i]

        return self.ls

    def get_min(self, a, b):
        if isinstance(a,str):
            a=ord(a)
        if isinstance(b,str):
            b=ord(b)

        return (True if a > b else False)


if __name__ == '__main__':
    a = [100, 'a', 'm', 'n', 'e', 'q', 's', 4, 21, 99, 'h', 'k']

    sort = SelectSort( a )

    print( sort.sort() )

》》》[4, 21, 'a', 99, 100, 'e', 'h', 'k', 'm', 'n', 'q', 's']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值