导航:首页 > 源码编译 > Python排序算法

Python排序算法

发布时间:2022-02-23 21:55:16

㈠ 怎样用python将数组里的数从高到低排序

1、首先我们定义一个列表输入一串大小不一的数字。

㈡ python写冒泡排序

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
中文名
冒泡排序
外文名
Bubble Sort
所属学科
计算机科学
时间复杂度
O(n2)
算法稳定性
稳定排序算法
快速
导航
算法分析算法描述优化算法比较
算法原理
冒泡排序算法的原理如下:[1]
比较相邻的元素。如果第一个比第二个大,就交换他们两个。[1]
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。[1]
针对所有的元素重复以上的步骤,除了最后一个。[1]
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

㈢ python简单实现基数排序算法

python简单实现基数排序算法
这篇文章主要介绍了python简单实现基数排序算法,仅用4行代码即可实现基数排序算法,非常简单实用,分享给大家供大家参考。
具体实现方法如下:
from random import randint
def main():
A = [randint(1, 99999999) for _ in xrange(9999)]
for k in xrange(8):
S = [ [] for _ in xrange(10)]
for j in A:
S[j / (10 ** k) % 10].append(j)
A = [a for b in S for a in b]
for i in A:
print i
main()

希望本文所述对大家的Python程序设计有所帮助。

㈣ python冒泡排序方法

#-*-coding:utf-8-*-

#g:/python
#冒泡排序
#1.定义一个列表
number=[6665,666,323,124,4442,5,123,412,55]
#外循环控制冒泡排序的次数,n个数为n-1次
for i in range(0,len(number)-1):
#内循环控制每次排序对比的次数,n个数对比n-1次
for j in range(0,len(number)-1):
#进行对比,交换位置
if(number[j]>number[j+1]):
index=number[j+1]
number[j+1]=number[j]
number[j]=index
#输出排序后的列表
print(number)

㈤ Python实现的快速排序算法详解

Python实现的快速排序算法详解
本文实例讲述了Python实现的快速排序算法。分享给大家供大家参考,具体如下:
快速排序基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
如序列[6,8,1,4,3,9],选择6作为基准数。从右向左扫描,寻找比基准数小的数字为3,交换6和3的位置,[3,8,1,4,6,9],接着从左向右扫描,寻找比基准数大的数字为8,交换6和8的位置,[3,6,1,4,8,9]。重复上述过程,直到基准数左边的数字都比其小,右边的数字都比其大。然后分别对基准数左边和右边的序列递归进行上述方法。
实现代码如下:
def parttion(v, left, right):
key = v[left]
low = left
high = right
while low < high:
while (low < high) and (v[high] >= key):
high -= 1
v[low] = v[high]
while (low < high) and (v[low] <= key):
low += 1
v[high] = v[low]
v[low] = key
return low
def quicksort(v, left, right):
if left < right:
p = parttion(v, left, right)
quicksort(v, left, p-1)
quicksort(v, p+1, right)
return v
s = [6, 8, 1, 4, 3, 9, 5, 4, 11, 2, 2, 15, 6]
print("before sort:",s)
s1 = quicksort(s, left = 0, right = len(s) - 1)
print("after sort:",s1)
运行结果:
before sort: [6, 8, 1, 4, 3, 9, 5, 4, 11, 2, 2, 15, 6]
after sort: [1, 2, 2, 3, 4, 4, 5, 6, 6, 8, 9, 11, 15]

㈥ python列表排序方法

列表的sort方法就是用来进行排序的。

主要就是两个参数,key,reverse


先说reverse,这个很简单,就是指出是否进行倒序排序:一般情况下,1排在2的前面,而倒序则相反。


key参数:一般它是一个函数,它接受列表中每一个元素,返回一个可用用于比较的值。

s=[1,2,3,4,5]

s.sort(key=lambda _: _**2%7)

print(s)

输出的是:[1, 3, 4, 2, 5]

如果看不懂lambda表达式,可以看这一段等价的写法:

def myfn(x):

....return (x * x) % 7


s=[1,2,3,4,5]

s.sort(key=myfn)

print(s)

输出的结果是一样的。

key使用的函数可以是自定义函数也可以pytho内置的函数,或者是某个类或者实例的方法,只要它能接受一个参数,返回一个可比较的值即可。比如这样:

s=[[1,2,4],[3,3,5],[1,1,1],[5,7,9]]

s.sort(key=max) # 直接使用max函数作为排序依据

print(s)

[[1, 1, 1], [1, 2, 4], [3, 3, 5], [5, 7, 9]]


㈦ Python中既然有了sort()可以排序,那还有必要实现其他排序算法吗例如堆排序,快速排序

肯定有必要的,sort是基于快速排序,但我们编程的时候不单单要会用,而且要知道原理
此外,有些情况下冒泡、选择排序的时间复杂度也不差,而且实现简单,更适用于一些小数据量的情况,这时候这些排序反而有优势
而且有时候数据结构不一定是整型等, 是我们自定义的类型,要对其中的某个成员变量排序,知道原理就更容易理解

㈧ Python选择排序算法 如何做!急求!!

#coding: utf-8
#!/usr/bin/python import random

#随机生成0~100之间的数值def get_andomNumber(num):
lists=[]
i=0
while i<num:
lists.append(random.randint(0,100))
i+=1
return lists

# 选择排序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
temp = lists[min]
lists[min] = lists[i]
lists[i] = temp
return lists

a = get_andomNumber(10)
print("排序之前:%s" %a)

b = select_sort(a)
print("排序之后:%s" %b)

㈨ 下面python程序里的排序算法是属于哪一种

冒泡排序

阅读全文

与Python排序算法相关的资料

热点内容
无法连接到版本服务器是什么原因 浏览:476
压缩机起动两分钟停机为什么 浏览:279
笔记本没串口怎么写单片机程序 浏览:854
如何识别网站源码语言 浏览:393
javaweb首页 浏览:337
程序员招聘网站哪个好 浏览:576
ios仿美团外卖源码 浏览:138
pdf文本换行 浏览:426
爱豆app哪里下载 浏览:883
pac脚本怎么打开源码 浏览:551
安卓手机下载什么控制空调 浏览:92
如何把加密的pdf的水印去掉 浏览:907
已加密文件咋打印 浏览:429
机器人走正方形编程代码 浏览:125
安卓手机怎么变成苹果表情原创 浏览:673
serial驱动linux 浏览:845
高薪程序员有哪些专业 浏览:483
安安一对一聊天app在哪里下载 浏览:719
光遇攻略手册app在哪里下载 浏览:184
单片机ea引脚 浏览:814