用冒泡排序编写一个函数,允许接受多个数字的输入,不使用sort方法,给数字从小到大排序,最终输出从小到大的列表。
详见:Python-冒泡排序法_冒泡排序python可以吗_Hacker-666的博客-CSDN博客
气泡法(冒泡法)排序是一种计算机科学领域的较简单的排序算法。
请在以下选项中选择
# File "E:/BLOG/python_day/python_day_code/A.py", line 7, in bubbleSort
# arr[j], arr[j/1] = arr[j/1], arr[j]
# TypeError: list indices must be integers or slices, not float
#!/usr/bin/python3
def bubbleSort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1] :
#应为: arr[j], arr[j+1] = arr[j+1], arr[j]
arr[j], arr[j/1] = arr[j/1], arr[j]
x=input("请输入数字,空格分隔:")
xlist=x.split(" ")
arr = [int(xlist[i]) for i in range(len(xlist))]
bubbleSort(arr)
print ("排序后的数组:")
for i in range(len(arr)):
print ("%d" %arr[i]),
def bubbleSort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
#将最尾部的数据与之前的数据循环顺次比较,如果前面的数据较大,则交换2个数据
#保证较小的数字永远位于前面,形象的表示为较轻的气泡自动上浮
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
#题目给定方法,可以将数字转换为字符串列表
x=input("请输入数字,空格分隔:")
xlist=x.split(" ")
arr = [int(xlist[i]) for i in range(len(xlist))]
#也可以采用map函数简化数据的输入及处理
#arr=list(map(int,input("请输入数字,空格分隔:").strip().split()))
bubbleSort(arr)
print ("排序后的数组:")
for i in range(len(arr)):
print ("%d" %arr[i]),
#排序有误
#应为:if arr[j] > arr[j+1] :
if arr[j] == arr[j+1] :
def bubbleSort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
#应为:if arr[j] > arr[j+1] :
if arr[j] == arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
x=input("请输入数字,空格分隔:")
xlist=x.split(" ")
arr = [int(xlist[i]) for i in range(len(xlist))]
bubbleSort(arr)
print ("排序后的数组:")
for i in range(len(arr)):
print ("%d" %arr[i]),
# File "E:/BLOG/python_day/python_day_code/D.py", line 6, in bubbleSort
# if arr[j] > arr[j+1] :
# IndexError: list index out of range
def bubbleSort(arr):
n = len(arr)
for i in range(n):
#for j in range(0, n-i-1):
for j in range(0, n+i+1):
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
x=input("请输入数字,空格分隔:")
xlist=x.split(" ")
arr = [int(xlist[i]) for i in range(len(xlist))]
bubbleSort(arr)
print ("排序后的数组:")
for i in range(len(arr)):
print ("%d" %arr[i]),