数据结构与算法(排序--附Python代码)

本文介绍了多种排序算法,包括冒泡排序、简单选择排序、直接插入排序、希尔排序、堆排序、归并排序、快速排序、计数排序和桶排序。详细阐述了每种排序算法的基本概念和工作原理,并提供了Python代码示例。对于理解数据结构和算法中的排序问题具有指导意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

基本概念:

冒泡排序:

简单选择排序:

直接插入排序:

希尔排序:

堆排序:

归并排序:

快速排序:

计数排序:

桶排序:


基本概念:

稳定性

内排序:待排序的所有记录全部放置在内存中

外排序:在内外存之间多次交换数据

冒泡排序:

两两比较相邻的元素,如果反序就交换,直到没有反序。

题目:给定一个长度为 n 的数组,请你编写一个函数,返回该数组按升序排序后的结果。

输入:[5,2,3,1,4]

返回值:[1,2,3,4,5]

class Solution:
    def MySort(self , arr: List[int]) -> List[int]:
        # write code here
        for i in range(1, len(arr)):
            for j in range(0, len(arr)-i):
                if arr[j] > arr[j+1]:
                    arr[j], arr[j+1] = arr[j+1], arr[j]
        return arr

简单选择排序:

在未排序序列中找到最小元素放到起始位置,从剩余元素中寻找最小元素,直至所有元素排序完毕。

class Solution:
    def MySort(self , arr: List[int]) -> List[int]:
        # write code here
        for i in range(len(arr)-1):
            minIndex = i
            for j in range(i+1, len(arr)):
                if arr[j] < arr[minIndex]:
                    minIndex = j
            if i != minIndex:
                arr[i], arr[minIndex] = arr[minIndex], arr[i]
        return arr

直接插入排序:

将每个元素插入已经排序好的序列中。

class Solution:
    def MySort(self , arr: List[int]) -> List[int]:
        # write code here
        for i in range(len(arr)):
            preIndex = i-1
            current = arr[i]
            while preIndex >= 0 and arr[preIndex] > current:
                arr[preIndex+1] = arr[preIndex]
                preIndex-=1
            arr[preIndex+1] = current
        return arr

希尔排序:

堆排序:

归并排序:

快速排序:

计数排序:

桶排序:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值