您的位置:首页 > 编程语言 > Python开发

python语言小程序——排序算法1(选择排序、起泡排序)

2018-03-25 21:05 417 查看
使用python来写一些比较基础的排序算法。这里我写了两种算法,一种选择排序,一种起泡排序。

首先先定义了两个函数:一个getArray函数,随机产生0~999数字的数组,一个show函数,来展示数组。

import random
arr = [] #没有定义长度,长度为0

#随机生成一个数组
def getArray(n):
for i in range( 10 ): # 0,1,2,3,4,5...
#arr[i] 则下标越界
arr.append( random.randint(0,999) )

print('待排序的数组')
getArray(10) #调用这个函数,生成随机数组

#选择排序
def show(arr):
for i in range( len(arr) ):
print(arr[i],end=' ')
print('\n')

show( arr ) #显示刚刚产生的随机数组

#选择排序算法一
print('选择排序算法一')
for i in range( len(arr)-1 ):
for j in range( i+1,len(arr) ):
if arr[j]<arr[i]:
temp = arr[j]
arr[j] = arr[i]
arr[i] = temp
show(arr)

#选择排序算法二
print('选择排序算法二')
for i in range( len(arr)-1 ):
index = i
for j in range( i+1,len(arr) ):
if arr[index]>arr[j]:
index = j
arr[i],arr[index] = arr[index],arr[i]  #将arr[index]与arr[i]数据交换
show(arr)
#冒泡排序
#外循环    len(arr)-1
#内循环    len(arr)-i-1
#相邻的两个元素比较
getArray(10)
print('待排序的数组')
show(arr)
print('起泡排序算法')
for i in range( len(arr)-1 ):
for j in range( len(arr)-i-1 ):
if arr[j]>arr[j+1]:
temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
show(arr)


输出结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息