当前位置: 首页> 科技> 数码 > b2b外贸网站建设_扬中网站建设开发_韶山百度seo_厦门seo管理

b2b外贸网站建设_扬中网站建设开发_韶山百度seo_厦门seo管理

时间:2025/7/11 8:09:31来源:https://blog.csdn.net/weixin_45423893/article/details/144438367 浏览次数:1次
b2b外贸网站建设_扬中网站建设开发_韶山百度seo_厦门seo管理

快速排序算法

快速排序(QuickSort)是一种基于分治法的高效排序算法。它通过选择一个“基准”元素,将数组分成两个子数组,其中一个子数组的所有元素都比基准小,另一个子数组的所有元素都比基准大,然后递归地对这两个子数组进行排序。

以下是快速排序的基本步骤:

1.选择基准:从数组中挑选一个元素作为基准(pivot)。选择基准的方法有多种,比如可以选择第一个元素、最后一个元素、中间元素或随机选择一个元素。
2.分区操作:重新排列数组,使得所有比基准小的元素移到基准前面,所有比基准大的元素移到基准后面。在这个过程中,基准的位置确定下来。
3.递归排序:对基准左右两边的子数组分别重复第一步和第二步的操作,直到每个子数组的大小为0或1,此时整个数组已经有序。

使用Python代码实现

def quicksort(arr):if len(arr) <= 1:return arrelse:pivot = arr[len(arr) // 2]  # 选择中间位置的元素作为基准left = [x for x in arr if x < pivot]  # 小于基准的元素middle = [x for x in arr if x == pivot]  # 等于基准的元素right = [x for x in arr if x > pivot]  # 大于基准的元素return quicksort(left) + middle + quicksort(right)# 使用示例
array = [3, 6, 8, 10, 1, 2, 1]
print("原列表:", array)
sorted_array = quicksort(array)
print("排序后列表", sorted_array)

运行结果截图
在这里插入图片描述
我们可以看到已经排好序了

练习题

“”"
1.手动在当前项目根目录下创建singer.txt文件,内容如下:
沉默是金,张国荣
少女的祈祷,杨千嬅
暗里着迷,刘德华
难念的经,周华健
2、定义一个singer类(歌手类),包含初始化init方法:
成员属性: 歌曲名
歌手名字
成员方法:fans():打印“XXX歌手的YYY歌曲持续打榜,粉丝为喜欢的歌手打call”
XXX为对象的歌手名字,YYY为对象的歌曲名

3、在歌手类外面完成以下功能:
1)通过程序逐行读取singer.txt文件内容,根据每行数据创建对应歌手对象并赋值,依次将歌手对象存入列表。
2)遍历列表,获取元素并调用对象的fans方法
“”"


class singer:def __init__(self, song_name, singer_name):self.song_name = song_nameself.singer_name = singer_namedef fans(self):print(f'{self.singer_name}歌手的{self.song_name}歌曲持续打榜,粉丝为喜欢的歌手打call')def read_singer():list_tx = []# str = '13223,123'# str.split()with open('./singer.txt', 'r', encoding='utf-8') as rds:while True:line = rds.readline().strip()if len(line) <= 0:breaklin = line.split(',')list_tx.append(singer(lin[0], lin[1]))# print(list_tx[1].song_name)for i in list_tx:i.fans()if __name__ == '__main__':read_singer()

坚持分享 共同进步 如有错误 欢迎指出

关键字:b2b外贸网站建设_扬中网站建设开发_韶山百度seo_厦门seo管理

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: