首页 > 编程知识 正文

Python Sort排序原理用法介绍

时间:2023-11-20 10:59:03 阅读:288873 作者:DSTE

在Python编程中,Sort排序算法是一种常用的排序算法。它不仅仅是排序算法中的一种,而且它具有高效性、稳定性等优点,是程序员经常使用的重要工具。

一、Sort排序算法基本概念

Sort排序算法,顾名思义,就是将一个列表中的数据按照一定的规则进行排序。Sort排序算法的基本思想是:设置锚点,依次比较锚点和其他元素的大小关系,将锚点的位置不断变化,使得整个列表中的数据按照一定的规则排列。

def sort(lis: list):
    for i in range(len(lis)):
        for j in range(i + 1, len(lis)):
            if lis[j] < lis[i]:
                lis[j], lis[i] = lis[i], lis[j]
    return lis

print(sort([1, 3, 2]))

二、Sort排序算法优化方法

Sort排序算法是一种基本的排序方法,但是当数据规模较大时,Sort排序算法的效率不高,需要对算法进行优化。

1、归并排序

归并排序是将一个列表不断分割成小列表,再将小列表进行合并得到结果的排序算法。可以使用递归实现归并排序。

def merge_sort(lis: list):
    if len(lis) == 1:
        return lis
    mid = len(lis) // 2
    left = merge_sort(lis[:mid])
    right = merge_sort(lis[mid:])
    return merge(left, right)

def merge(left: list, right: list):
    result = []
    i, j = 0, 0
    while i < len(left) and j < len(right):
        if left[i] <= right[j]:
            result.append(left[i])
            i += 1
        else:
            result.append(right[j])
            j += 1
    result += left[i:]
    result += right[j:]
    return result

print(merge_sort([1, 3, 2]))

2、快速排序

快速排序是先找到一个轴点,将小于轴点的数放在轴点左边,大于等于轴点的数放在轴点右边,然后对左右两边继续进行快速排序的排序算法。

def quick_sort(lis: list):
    if len(lis) <= 1:
        return lis
    pivot = lis[int(len(lis) / 2)]
    left = [x for x in lis if x < pivot]
    middle = [x for x in lis if x == pivot]
    right = [x for x in lis if x > pivot]
    return quick_sort(left) + middle + quick_sort(right)

print(quick_sort([1, 3, 2]))

三、Sort排序算法应用案例

Sort排序算法被广泛应用于各个领域。例如:

1、按照学生成绩排名

在学生成绩管理系统中,可以使用Sort排序算法按照学生成绩进行排名。将每一个学生的学号、姓名、成绩等信息存储在一个列表中,按照成绩从高到低进行排序,得到学生成绩排名。

class Student(object):
    def __init__(self, name: str, age: int, score: int):
        self.name = name
        self.age = age
        self.score = score

    def __str__(self):
        return "name: {0}, age: {1}, score: {2}".format(self.name, self.age, self.score)

    __repr__ = __str__

def sort_students(students: list):
    result = sorted(students, key=lambda x: x.score, reverse=True)
    return result

students = [Student("Tom", 20, 90), Student("Jerry", 21, 80), Student("Lucy", 19, 95)]
sorted_students = sort_students(students)
for i in sorted_students:
    print(i)

2、按照商品价格排序

在电商平台中,可以使用Sort排序算法按照商品价格进行排序。将每一个商品的ID、名称、价格等信息存储在一个列表中,按照价格从低到高进行排序,得到商品价格排名。

class Product(object):
    def __init__(self, id: str, name: str, price: float):
        self.id = id
        self.name = name
        self.price = price

    def __str__(self):
        return "id: {0}, name: {1}, price: {2}".format(self.id, self.name, self.price)

    __repr__ = __str__

def sort_products(products: list):
    result = sorted(products, key=lambda x: x.price)
    return result

products = [Product("001", "apple", 3.5), Product("002", "banana", 2.5), Product("003", "orange", 5.0)]
sorted_products = sort_products(products)
for i in sorted_products:
    print(i)

四、总结

本文主要讲解了Python Sort排序算法原理,并对排序算法的实现、优化以及应用进行了详细的讲解。Sort排序算法在实际开发中被广泛应用,可以有效提高编程效率和程序执行效率。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。