首页 > 编程语言 >Python实现排序算法

Python实现排序算法

时间:2023-02-19 23:34:02浏览次数:32  
标签:arr right Python range len 算法 排序 def left

冒泡排序

def bubbleSort(arr):
    for i in range(len(arr)-1):
        for j in range(len(arr)-1):
            if arr[j]>arr[j+1]:
                arr[j],arr[j+1]=arr[j+1],arr[j]
    return arr     

简单选择排序

def selectionSort(arr):
    for i in range(len(arr)-1):
        min_index=i #记录最小数的索引
        for j in range(i+1,len(arr)):
            if arr[j]<arr[min_index]:
                min_index=j
        if i!=min_index:
            arr[i],arr[min_index]=arr[min_index],arr[i]
    return arr   

快速排序

def quickSort(arr):
    def partition(arr,left,right):
        key=left
        while left<right:
            while left<right and arr[right]>=arr[key]:
                right-=1
            while left<right and arr[left]<=arr[key]:
                left+=1
            arr[left],arr[right]=arr[right],arr[left]
        arr[left],arr[key]=arr[key],arr[left]
        return left
    def quicksort(arr,left,right):
        if left>=right:return
        mid=partition(arr,left,right)
        quicksort(arr,left,mid-1)
        quicksort(arr,mid+1,right)
    n=len(arr)
    if n<=1:
        return arr
    quicksort(arr,0,n-1)
    return arr
if __name__=='__main__':
    print(quickSort([1,9,3,2,6,4,87,5,0]))        

标签:arr,right,Python,range,len,算法,排序,def,left
From: https://blog.51cto.com/u_15944471/6066958

相关文章

  • 排序
    排序题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。在冒泡排序中,每次只能交......
  • 分治算法解决大整数乘法方案
    分治算法解决大整数乘法方案 1 引言对于输入规模为n的两个大整数相乘,按照普通乘法显然需要O(n2)次“位”运算。若把输入的二个大整数各分为大小相同的二个部分......
  • 代码随想录算法训练营第三十五天 | 435. 无重叠区间,763.划分字母区间,56. 合并区间
    一、参考资料无重叠区间https://programmercarl.com/0435.%E6%97%A0%E9%87%8D%E5%8F%A0%E5%8C%BA%E9%97%B4.html划分字母区间https://programmercarl.com/0763.%E......
  • 对Map排序
     一下代码为给一个hashMap的key排序,value排序一样处理 publicstaticList<Map.Entry<String,Integer>>sortHashMapInteger(HashMap<String,Integer>map,finalStrin......
  • Python 异步: 同时运行多个协程(10)
    asyncio的一个好处是我们可以同时运行许多协程。这些协同程序可以在一个组中创建并存储,然后同时一起执行。这可以使用asyncio.gather()函数来实现。让我们仔细看看。1......
  • Python selenium
    目录selenium功能Python实现seleniumSelenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,......
  • 算法题——我在哪
    题目分析题意,寻找最小的K值,使得任意连续K个邮箱序列都是唯一的,也即寻找最小的K值,使得字符串中所有长度为K的子串都是唯一的。由于n最大为100,可以直接暴力求解。先遍历K......
  • 算法刷题-放苹果-JAVA
    0x00引言为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。题解只写自己理解的解法,其他解法不再增加。......
  • 算法刷题-尼科彻斯定理-JAVA
    0x00引言为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。题解只写自己理解的解法,其他解法不再增加。......
  • 各大排序算法的优缺点以及实现方法
    这篇文章,我们来谈谈一些关于排序的东西注意!这篇文章在写的时候混淆了一个概念,“稳定”本义指的是能保证两个相等的数,经过排序之后,序列的前后位置顺序不变。在本文中理解成......