<每日一题>题目23:桶排序
'''
桶排序:最快最简单的排序
缺点:最占内存
类型:分布式排序
'''
import cProfile
import random
def bucketSort(nums):
#选出最大的数
max_num = max(nums)
#创建一个元素全是0的列表,当桶
bucket = [0]*(max_num+1)
#把所有元素放入桶中,即把对应元素个数加1
for i in nums:
bucket[i] = bucket[i] + 1
sort_nums = []
#取出桶中的元素
for j in range(len(bucket)):
if bucket[j] != 0 :
for y in range(bucket[j]):
sort_nums.append(j)
return sort_nums nums = [random.randint(0,10000) for i in range(10000)]
print(bucketSort(nums))
cProfile.run('bucketSort(nums)')
运行结果:
排序:略
运行时间:0.005秒

<每日一题>题目23:桶排序的更多相关文章
- [LeetCode每日一题]153.寻找旋转排序数组中的最小值
[LeetCode每日一题]153.寻找旋转排序数组中的最小值 问题 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组.例如,原数组 nums = [0,1, ...
- [LeetCode每日一题]81. 搜索旋转排序数组 II
[LeetCode每日一题]81. 搜索旋转排序数组 II 问题 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同. 在传递给函数之前,nums 在预先未知的某个下标 k(0 & ...
- <每日一题>题目26:选择排序(冒泡排序改进版)
''' 选择排序:选择最小的,以此类推 ''' import random import cProfile def select_Sort(nums): for i in range(len(nums ...
- <每日一题>题目28:生成随机的测验试卷(单选题)
#项目:生成随机的测验试卷文件 import random #资料库 capitals = {'北京市':'京','上海市':'沪','天津市':'津','重庆市':'渝','河北省':'冀','山西 ...
- <每日一题>题目4:for循环套生成器的面试题
题目: def add(n,i): return n+i def test(): for i in range(4): yield i g = test() for n in [1,10,5]: g ...
- <每日一题>题目5:生成器表达式面试题
题目: def demo(): for i in range(4): yield i g = demo() g1 = (i for i in g ) g2 = (i for i in g1) prin ...
- <每日一题>题目14:拷贝的问题
''' 拷贝的问题 引用:无论怎么变都一起变 浅拷贝:只拷贝父对象,不会拷贝父对象中的子对象 深拷贝:完全拷贝,重新划分内存空间 ''' 具体如下图: 题目: #求a.b.c.d的值 import c ...
- <每日一题>题目27:插入排序(假)
''' 插入排序:假设元素左侧全部有序,找到自己的位置插入 ''' import random import cProfile def insert_sort(nums): for i in rang ...
- <每日一题>题目25:快速排序
''' 快速排序:分而治之,一分为二进行排序 ''' import cProfile import random def quick_sort(nums): if len(nums) <= 1: ...
随机推荐
- vue使用axios提交formdata格式的数据
参考: https://www.cnblogs.com/qwert1/p/8909455.html https://blog.csdn.net/qq_42984640/article/details/ ...
- FaceNet pre-trained模型以及FaceNet源码使用方法和讲解
Pre-trained models Model name LFW accuracy Training dataset Architecture 20180408-102900 0.9905 CASI ...
- mysql 监控及优化——转载自http://www.cnblogs.com/suansuan/
1.Mysql连接数 Mysql默认最大连接数为100. 设置Mysql的最大连接数,在Mysql的配置文件中增加: max_connections = 1000 #Mysql的最大连接数,默认如 ...
- SQLServer日期格式化及创建相关日期
DECLARE @FirstDay_M DATETIME --本月初日期 ,); DECLARE @LastDay_M DATETIME --本月末日期 SET @LastDay_M = DATEAD ...
- VS2010-MFC(状态栏的使用详解)
转自:http://www.jizhuomi.com/software/219.html 上一节讲了工具栏的创建.停靠与使用,本节来讲解状态栏的知识. 状态栏简介 状态栏相信大家在很多窗口中都能见到, ...
- DEVO 7E遥控器配对
先把遥控器上电,并把模型里面的固定ID关闭,放在一旁. 接收器断电,按住CLEAN按钮后上电,会发现接收器慢闪两下后松开. 这时遥控器应该就连上接收器了,这时接收器常亮. 再自行配置固定ID即可.
- ssm下使用分页插件PageHelper进行分页
1. 导入maven依赖: <dependency> <groupId>com.github.pagehelper</groupId> <artifactId ...
- FastJson使用方法
FastJson是阿里的一款开源框架,用来快速实现Java的序列化和反序列化. 官方地址:https://github.com/alibaba/fastjson 使用方法演示: 下载jar包,使用ID ...
- 左神算法基础班5_1设计RandomPool结构
Problem: 设计RandomPool结构 [题目] 设计一种结构,在该结构中有如下三个功能: insert(key):将某个key加入到该结构,做到不重复加入. delete(key):将原本在 ...
- git push到多个不同的远程仓库
1.若现在本地有一个已经和github远程仓库关联好的本地仓库,平时都会将本地仓库push到github上. 2.有一天突然发现"码云"这个远程仓库网站,咦!这个还可以创建priv ...