Python NumPy 学习记录冒泡排序和List中sort方法计算时间对比
Posted 空中旋转篮球
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python NumPy 学习记录冒泡排序和List中sort方法计算时间对比相关的知识,希望对你有一定的参考价值。
1.冒泡排序算法
冒泡排序的原理如下:
1. 比较相邻的两个元素。如果第一个比第二个大则交换他们的位置(升序排列,降序则反过来)。
2. 从列表的开始一直到结尾,依次对每一对相邻元素都进行比较。这样,值最大的元素就通过交换“冒泡”到了列表的结尾,完成第一轮“冒泡”。
3. 重复上一步,继续从列表开头依次对相邻元素进行比较。已经“冒泡”出来的元素不用比较(一直比较到结尾也可以,已经“冒泡”到后面的元素即使比较也不需要交换,不比较可以减少步骤)。
4. 继续从列表开始进行比较,每轮比较会有一个元素“冒泡”成功。每轮需要比较的元素个数会递减,一直到只剩一个元素没有“冒泡”时(没有任何一对元素需要比较),则列表排序完成。
原文链接:https://blog.csdn.net/weixin_43790276/article/details/104033622
2.时间对比
代码如下:
import datetime
from numpy import random
class sorts:
def __init__(self,array):
self.array=array
def bubblesort(self):
sort_array=self.array
length=len(sort_array)
for i in range(length):
for j in range(0,length-i-1):
if sort_array[j]>sort_array[j+1]:
sort_array[j],sort_array[j+1]=sort_array[j+1],sort_array[j]
print(self.array)
array0=[]
for i in range(10000):
array0.append(random.randint(0,10000))
s1=sorts(array0)
startTime=datetime.datetime.now()
print(startTime)
s1.bubblesort()
endTime=datetime.datetime.now()
print(endTime)
print(endTime-startTime)
print(startTime)
array0.sort()
endTime=datetime.datetime.now()
print(endTime)
print(endTime-startTime)
10000个数字排序结果:
2021-06-10 08:50:18.416549
0:00:07.233039
2021-06-10 08:50:11.183510
2021-06-10 08:50:18.475420
0:00:07.291910
10万个数字排序结果:
2021-06-10 09:09:53.527205
0:10:54.740252
2021-06-10 08:58:58.786953
2021-06-10 09:09:53.580073
0:10:54.793120
以上是关于Python NumPy 学习记录冒泡排序和List中sort方法计算时间对比的主要内容,如果未能解决你的问题,请参考以下文章