python 八大排序_八大排序算法的 Python 实现

1、插入排序

def insert_sort(lists):

# 插入排序

count = len(lists)

for i in range(1, count):

key = lists[i]

j = i - 1

while j >= 0:

if lists[j] > key:

lists[j + 1] = lists[j]

lists[j] = key

j -= 1

return lists

2、希尔排序

def shell_sort(lists):

# 希尔排序

count = len(lists)

step = 2

group = count / step

while group > 0:

for i in range(0, group):

j = i + group

while j 

k = j - group

key = lists[j]

while k >= 0:

if lists[k] > key:

lists[k + group] = lists[k]

lists[k] = key

k -= group

j += group

group /= step

return lists

3、冒泡排序

def bubble_sort(lists):

# 冒泡排序

count = len(lists)

for i in range(0, count):

for j in range(i + 1, count):

if lists[i] > lists[j]:

lists[i], lists[j] = lists[j], lists[i]

return lists

4、快速排序

def quick_sort(lists, left, right):

# 快速排序

if left >= right:

return lists

key = lists[left]

low = left

high = right

while left 

while left = key:

right -= 1

lists[left] = lists[right]

while left 

left += 1

lists[right] = lists[left]

lists[right] = key

quick_sort(lists, low, left - 1)

quick_sort(lists, left + 1, high)

return lists

5、直接选择排序

def select_sort(lists):

# 选择排序

count = len(lists)

for i in range(0, count):

min = i

for j in range(i + 1, count):

if lists[min] > lists[j]:

min = j

lists[min], lists[i] = lists[i], lists[min]

return lists

6、堆排序

# 调整堆

def adjust_heap(lists, i, size):

lchild = 2 * i + 1

rchild = 2 * i + 2

max = i

if i 

if lchild  lists[max]:

max = lchild

if rchild  lists[max]:

max = rchild

if max != i:

lists[max], lists[i] = lists[i], lists[max]

adjust_heap(lists, max, size)

# 创建堆

def build_heap(lists, size):

for i in range(0, (size/2))[::-1]:

adjust_heap(lists, i, size)

# 堆排序

def heap_sort(lists):

size = len(lists)

build_heap(lists, size)

for i in range(0, size)[::-1]:

lists[0], lists[i] = lists[i], lists[0]

adjust_heap(lists, 0, i)

7、归并排序

def merge(left, right):

i, j = 0, 0

result = []

while i 

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

def merge_sort(lists):

# 归并排序

if len(lists) <= 1:

return lists

num = len(lists) / 2

left = merge_sort(lists[:num])

right = merge_sort(lists[num:])

return merge(left, right)

8、基数排序

import math

def radix_sort(lists, radix=10):

k = int(math.ceil(math.log(max(lists), radix)))

bucket = [[] for i in range(radix)]

for i in range(1, k+1):

for j in lists:

bucket[j/(radix**(i-1)) % (radix**i)].append(j)

del lists[:]

for z in bucket:

lists += z

del z[:]

return lists

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566848.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

soc 设计soc设计 uml实务手册_企业内训“软件需求设计建模方法学全程实例剖析”训练方案(2020年)...

※训练介绍※利润需求-设计。软件开发中&#xff0c;需求是解决“系统怎样好卖”的问题&#xff0c;设计是解决“降低开发成本”的问题。要迈向“低成本制造好卖的产品”的境界&#xff0c;并非喊喊口号就能达到。口号&#xff1a;我们只做最重要的需求&#xff0c;尽快把系统推…

鸿蒙分布式通讯子系统,【鸿蒙】分布式通信子系统--让华为手机发现Hi3861开发板...

目录&#xff1a;工具步骤运行结果工具&#xff1a;1. 华为手机&#xff0c;需要有多设备协同功能。在设置->更多连接->多设备协同&#xff0c;查看是否有多设备协同功能&#xff0c;此功能使用的就是coap协议。2. Hi3861开发板步骤&#xff1a;1. 修改源码&#xff0c;…

python2.7 pyqt4创建qtapp_python-2.7 – 向TabWidget pyqt4添加加号按钮

以下代码提供了一个可以动态添加选项卡的选项卡界面import sys,randomfrom PyQt4 import QtCore,QtGuiclass TabContainer(QtGui.QWidget):def __init__(self):super(TabContainer,self).__init__()self.next_item_is_table Falseself.initUI()def initUI(self):self.setGeome…

html怎样在一张图片里写字,用HTML代码在图片上写字

效果一&#xff1a;文字居中cellSpacing0 cellPadding0 width410 aligncenterbackgroundhttp://bbs.guqu.net/UploadFile/2005-1/200512211045825.gifborder0> type"vertical" spacer>size7>百年爱情文字在图片中的位置。由中的aligncenter决定。center&…

winform 统计大量数据重复的元素个数_DAY10——推断统计之概率与概率分布:常见的离散型概率分布...

「数学期望——某件事情大量发生之后的平均结果」----------------分割又分割----------------------昨天文章排版出了问题&#xff0c;今天重新排版。数据的三个统计维度&#xff1a;集中程度、离散程度、分布情况。集中程度&#xff1a;期望离散程度&#xff1a;方差、标准差…

数组转换为html,如何将多维PHP数组转换为html表

我正在尝试使用多维数组变量制作一个HTML表&#xff0c;该变量$array2是一个查询(来自mysql数据库PHP查询而不是一个自制查询)&#xff0c;如下所示&#xff1b;Array([0] > Array([0] > M2TYEE[1] > Jean[2] > Harvey[3] > London[4] > 0314686334)[1] >…

xss跨站脚本攻击_常见攻击之xss跨站脚本攻击

前言随着互联网的不断发展&#xff0c;web应用的互动性也越来越强。相应的&#xff0c;在用户体验提升的同时安全风险也会跟着有所增加。今天&#xff0c;我们就来讲一讲web渗透中常见的攻击方式之一&#xff0c;XSS攻击。首先需要了解他是如何工作的&#xff0c;以及我们如何利…

android dropbox切换账户,android – 如何获取我的APP_KEY和SECRET_KEY的Dropbox同步?

我正在努力构建将应用程序的* .csv文件与理想的保管箱帐户同步的机会.我到目前为止做了什么>清单中的权限和com.dropbox.client2.android.AuthActivity>使用我的发行商店签署了我的应用程序>执行一些代码来检查保管箱服务问题是我不明白我在哪里可以得到APP_KEY和SECR…

缺陷调研报告_质量零缺陷 | 打造极致产品的质量管理之道

质量是政治质量是生命质量是效益为强化全员“零缺陷”质量意识&#xff0c;坚决打赢质量提升攻坚战&#xff0c;现开设“质量零缺陷”专栏&#xff0c;着力宣传全院各单位在加强质量管理&#xff0c;落实零缺陷理念等方面的典型做法和质量故事。今天为大家带来的是曾获得“全国…

html中隐藏单元格上边框,HTML table 标签边框问题(隐藏表格边框、单元格边框等)...

一、表格的常用属性基本属性有&#xff1a;width(宽度)、height(高度)、border(边框值)、cellspacing(表格的内宽&#xff0c;即表格与tr之间的间隔)、 cellpadding(表格内元素的间隔&#xff0c;即tr与tr之间的间隔)、bordercolorlight(表格的亮边框颜色)、 bordercolordark(表…

每日签到html特效,前端这种连续签到的效果要怎么写

后端返回数据&#xff1a; $data [month>2017-08,date>1,2,3,7,11]month: 当前月份&#xff1b;data:签到的日期;前端处理数据&#xff1a;首先根据date里返回的值将每个对应的日期给到class使其变亮&#xff0c;然后再在each中判断当前元素的上级元素是否为点亮状态&am…

oracle 从右往左截取_截取GIF、调分辨率、快捷拨号,三星这些功能让人爱不释手...

昨天三星5G手机正式上市后&#xff0c;今天又爆出苹果被三星拒绝后要转向华为购买5G芯片&#xff0c;苹果如此操作是真的走投无路了&#xff1f;再看看吃瓜群众们&#xff0c;吐槽一波接一波。​一会儿&#xff0c;嫌弃三星信号频段不完全&#xff0c;10nm的工艺制程太差。一会…

html编辑器查找与替换,织梦kindeditor文本编辑器增加“查找替换”功能

织梦kindeditor文本编辑器增加“查找替换”功能效果演示1、items 里面增加 search 按钮[source,|,undo,redo,|,preview,print,template,code,cut,copy,paste,plainpaste,wordpaste,|,justifyleft,justifycenter,justifyright,justifyfull,insertorderedlist,insertunorderedlis…

python excel数据可视化软件_excel是基础的数据分析与可视化工具

(原创声明&#xff0c;转载引用需要指明来源)Microsoft Excel是Microsoft为电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具&#xff0c;使Excel成为流行的计算机数据处理软件。管理数据Excel可以管理数据创建模板&#xff0c;使得Excel电子表格的数据自动存…

html中表单的校验的插件,功能强大的jquery.validate表单验证插件

本文实例为大家分享了jquery.validate表单验证的使用方法&#xff0c;供大家参考&#xff0c;具体内容如下1 、表单验证的准备工作在开启长篇大论之前&#xff0c;首先将表单验证的效果展示给大家。1.点击表单项&#xff0c;显示帮助提示2.鼠标离开表单项时&#xff0c;开始校验…

聊天室程序python_Python聊天室程序(基础版)

本文实例为大家分享了Python聊天室程序的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下客户端代码&#xff1a;# Filename: socketClient.pyimport socketimport sysimport threading# Client GUIfrom tkinter import *import Pmw# Create a TCP/IP socketsock soc…

怎么设置缓存 html js,如何为css / js文件设置缓存

如果你使用Apache,我会从这里开始.压缩和缓存是不同的.对于压缩,PHP Minify或YUI Compressor是伟大的.如果一切都失败,TextMate有一个很好的Javascript Tools Bundle,可以压缩你的代码.您可以手动压缩代码,然后将其上传,并撤消压缩以使源恢复到可读状态.我不推荐这个,但我以前做…

swing 显示文件下文件_Linux 文件权限详解

阅读五分钟&#xff0c;每日十点&#xff0c;和您一起终身学习&#xff0c;这里是程序员Android本篇文章主要介绍 Android 开发中的部分知识点&#xff0c;通过阅读本篇文章&#xff0c;您将收获以下内容:一、使用ls -l 显示文件的详细信息二、Linux下的文件权限分组三、drwx 代…

山东工业大学计算机及应用,彭玉旭副教授

[1] 彭玉旭&#xff0c;张力军.Ad Hoc中基于位置的路由转发策略比较.解放军理工大学学报&#xff0c;2004&#xff0c;5(6)&#xff1a;21-24.[2] Pengyuxu,Zhang lijun, Virtual Destination based Geographic Routing in Ad Hoc Mobile Networks, IEEE International Confere…

python startswitch_使用python esl 实现FreeSWITCH自动外呼

使用python esl 实现FreeSWITCH自动外呼tags&#xff1a;FreeSWITCH python 自动外呼 创建时间&#xff1a;2016-03-19 09:37:39以下项目开源于&#xff1a;https://github.com/nwaycn/nway_ac代码&#xff1a;python# codingutf-8__author__ lihao,18621575908版权所有&#…