桶排序,冒泡排序,快速排序算法Python实现

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

桶排序

案例:学生分数为0~10,要按照从小到大排序:
1. 首先我们需要申请一个大小为10的数组(python为列表),然后遍历学生成绩,每遍历一个成绩就在序号=成绩的位置+1.
2. 生成完列表之后,按照序号从小到大遍历,打印出每个序号,每个序号打印次数是序号下的数值

def bucket_sort(lst):
    pre_lst = [0]*10#预先设定的列表,全部置零
    result = []
    for score in lst: #遍历成绩,相应得分位置+1
        pre_lst[score-1]+=1

    i = 0
    while i<len(pre_lst):#遍历生成的列表,从小到大
        j = 0
        while j < pre_lst[i]:
            result.append(i+1)
            j+=1
        i+=1
    print result

实例验证:


lst = [7,9,3,5,7,10,5,4,8,3]
bucket_sort(lst)
数据结构与算法 ---- 冒泡排序算法 冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换。一直重复这个过程,直到没有任何两个相邻元素可以交换,就表明完成了排序。 假设待排序序列为 (5,1,4,2,8),如果采用冒泡排序对其进行升序(由小到大)排序,则整个排序过程如下所示: 第一轮排序,此时整个序列中的元素都位于待排序序列,依次扫描每对相邻的元素,并对顺序不正确的元素对交换位置,整个过程如图 1 所示。 从图 1 可以看到,经过第一轮冒泡排序,从. 阅读详情

相关推荐

成绩排序(思路+代码详解)Python实现

成绩排序(思路+代码详解)Python实现,超详解

Kxiansheng111的博客 8051

Python实现桶排序

Python实现桶排序

weixin_43790276的博客 5983

【菜鸟笔记|算法导论】十大排序算法总结与python实现

算法导论中提到了七种排序算法,再加上冒泡排序、选择排序、希尔排序,构成我们常说的十大排序算法。其中冒泡、选择、插入、希尔、归并、堆、快速排序都是比较排序算法(即通过对元素进行大小比较来确定顺序);计数、基数、桶排序都是非比较排序算法。十大排序算法的性能比较如下表: 下面将简单描述十大排序算法的原理,并分别用python实现。笔记自用就不附原理图了,如果对原理有疑问请参阅算法导论那本书,里面算法运行过程图解是非常清楚的。 1.冒泡排序 比较相邻两个数,若前面的数比后面的数大,则交换位置。每一轮最大的数沉底,

weixin_45199399的博客 719

Python排序算法冒泡排序

冒泡排序是一种简单直观的排序算法;它重复的遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复的进行直到不再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经过交换慢慢“浮”到数列的顶端。比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。

程序员小芽的博客 8652

python冒泡排序_5种python方法实现冒泡排序可视化:Bubble Sort Visualizer

1 说明:=====1.1 冒泡排序:1.1.1 原理:比较两个相邻的元素,将值大的元素交换至右端。1.1.2 来源:由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故得名。1.1.3 是一种最简单直观的排序算法之一。1.2 冒泡排序可视化:1.2.1 Bubble Sort Visualizer。1.2.2 更能直观了解这种排序。1.2.3 通过多种方法实现,理解该算法,同时复习pytho...

weixin_39702714的博客 666

万字长文,链表排序算法——冒泡排序、选择排序、插入排序、归并排序、快速排序、计数排序、桶排序、基数排序精讲及python实现

在数组排序中,常见的排序算法有:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序等。而对于链表排序而言,因为链表不支持随机访问,访问链表后面的节点只能依靠next指针从头部顺序遍历,所以相对于数组排序问题来说,链表排序问题会更加复杂一点。下面先来总结一下适合链表排序与不适合链表排序的算法冒泡排序选择排序插入排序归并排序快速排序计数排序桶排序基数排序。希尔排序。堆排序。希尔排序为什么不适合链表排序?希尔排序:希尔排序中经常涉及到对序列中第。

白话机器学习 4798

《程序员必知必会:十大排序算法( Java/Python/C++ 实现 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序)

本篇将介绍10种排序算法。用三种编程语言代码进行测试,可以根据附带动图以及介绍去推导这个过程。不断补充应用场景和一些应有的思考。冒泡排序通过反复比较并交换相邻元素,将最大(或最小)的元素像气泡一样逐渐“浮”到序列的一端,相邻比较,顺序不对就交换每次循环选取未排序部分的最值,放到已排序部分的末尾,重复至全部有序。如图所示,将未排序元素逐个插入到已排序序列的正确位置,如同整理扑克牌时一张张插入到手牌中的合适位置先把远距离的乱序理顺成“大致有序”,最后再微调成“完全有序”

qq_63561301的博客 1518

基于Python实现快速排序冒泡排序、选择排序、桶排序

文章目录快速排序方法一方法二冒泡排序选择排序 基于Python实现快速排序冒泡排序、选择排序 快速排序 方法一 代码: import random def quick_sort(lst): if len(lst) < 2: # 递归的基例或出口,即列表长度为1时返回自身 return lst else: pivot = lst[0...

Bryce_Liu的博客 497

python实现各种算法排序

桶排序 桶排序的工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序 桶排序按下⾯几步进⾏: 求出待排序列表中的最大值和最小值,得到数据的范围。 根据数据的范围,选择一个适合的值构建有限数量的桶,确定每个桶的数据范围。如数据范围是[0,100),将数据分成10个桶,第一个桶为[0,10),第二个桶为[10,20),以此类推。 将待排序列表中的数据分配到对应的桶中。 对每一个桶内的数据进行排序,这里可以采用任意一种排序算法,建议采用时间复杂度小的排序算法。 将所有桶中的数据依次取出,

qq_48082548的博客 848

史上最简单十大排序算法Python实现

目录 十大排序算法Python实现) 一. 算法介绍及相关概念解读 算法分类 相关概念 1. 交换排序 1.1 冒泡排序(Bubble Sort) 1.2 快速排序(Quick Sort) 2. 插入排序 2.1 简单插入排序(Insert Sort) 2.2 希尔排序(Shell Sort) 3.选择排序 3.1 简单选择排序(Select Sort) 3.2 堆排序...

白糖炒栗子 6万+

啊哈算法--排序算法python

这里主要给大家介绍的是啊哈算法桶排序冒泡排序快速排序python版本。

qq_43211230的博客 723

python数字排序算法_python实现各种排序算法

排序算法是一种能将一串资料依照特定排序方式进行排列的一种算法。最常用到的排序方式是数值顺序以及字典顺序。虽然排序算法是一个简单的问题,但是从计算机科学发展以来,在此问题上已经有大量的研究,有用的新算法仍在不断的被发明。这些排序都是比较经典的排序算法冒泡排序选择排序插入排序归并排序快速排序计数排序桶排序基数排序那么如何使用python实现这些排序呢?几大排序算法比较冒泡排序这个算法的名字由来是因...

weixin_42117082的博客 1530

排序算法 [ 基于Python语言 ] 冒泡排序 快速排序 堆排序 计数排序 桶排序

目录本文主要介绍了数据结构中常见的排序算法冒泡排序(鸡尾酒排序) 快速排序(分治法) 堆排序(大顶堆) 计数排序 桶排序 (使用的是Python语言);以及各个算法之间的比较(稳定性 时间复杂度 空间复杂度等)4.1 分类1.时间复杂度为O(n^2)2.O(nlogn)3.时间复杂度为线性4.2 冒泡排序及其改进(鸡尾酒排序)4.2.1 冒泡排序4.2.2 鸡尾酒排序4.3 快速排序4.3.1 分治法 基准元素的选择4.3.3 元素的交换1.双边循环法2.单边循环法4.4 堆排序(不稳定排序)

2301_77892626的博客 1238

python冒泡排序原理_<算法入门>快速理解7种排序算法 | python3实现(附源码)

算法是程序的灵魂,而排序算法算法的入门经典,作者在此用python亲自实现了7种主流的排序算法,并做简短的说明.排序算法学习难度:桶排序 < 冒泡排序 < 选择排序 < 插入排序 < 快速排序 < 归并排序 < 希尔排序桶排序(简化版)桶排序:将列表中最大数与最小数之间的数全部做成标签,贴到N个桶上将每个元素放到对应值的桶里面(如果有M个相同的元素值,则将M个元素全部放到相应的桶中,取的时候占...

weixin_39862794的博客 89

Python桶排序冒泡排序快速排序

Python算法桶排序冒泡排序快速排序详解

MoShyoKi的博客 1435

几种常用排序算法python实现

1:快速排序 思想: 任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。 一趟快速排序算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作为关键数据,赋值给key,即key=A[0]; 3)从j开始向前搜索,即由后开始向前搜索(j--),找...

dianliao7817的博客 245

部分排序算法python实现

看了下算法导论,再加上最近在学习python,就用python把部分排序的算法实现下,供大家参考。插入排序def InsertSort( A ): for j in range(1,len(A)): key=A[j] i=j-1; while (i>0 and A[i]>key): A[i+1]=A[i];

cj2wp的专栏 455

Sorting Algorithms in Python (排序算法)

本篇文章主要介绍几种经典排序算法冒泡排序快速排序、选择排序、堆排序、插入排序、希尔排序、归并排序、桶排序和基数排序。并给出用python实现算法代码。

m0_45175452的博客 1600

python实现数据结构八种排序算法

本文作为本人笔记之用,转载请注明出处! 一、冒泡排序 想象有一个列表的数,[1,9,2,8,3,6,4,5,7],首先是第一个数和后一个数比较大小,不符合规则(大了或小了)则两个数调换位置,

布响哒公的博客 1427
上一篇: 图像通道的拆分/合并处理
下一篇: Python十进制转二、八、十六进制
Ian ma
博客等级 码龄11年 164粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值