使用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)
输出结果如下: