我试着在Python中做冒泡排序,不做函数,不导入函数等。
到目前为止,我已经得到了这个,但现在我被难住了:p
array = [1, 42, 321, 44, 121, 61, 812, 71, 10, 11]
number = 1
ArrayIndex = 0
numchange = 0
TotalNumberofLoops = 10
OuterLoop = 0
InnerLoop = 0
while OuterLoop < TotalNumberofLoops:
InnerLoop = OuterLoop + 1
while InnerLoop < TotalNumberofLoops:
if array[OuterLoop] < array[InnerLoop]:
numchange = array[InnerLoop]
array[OuterLoop] = array[InnerLoop]
array[InnerLoop] = numchange
InnerLoop=InnerLoop + 1
print array
OuterLoop = OuterLoop + 1这将产生以下输出:
[812, 42, 321, 44, 121, 61, 812, 71, 10, 11]
[812, 812, 321, 44, 121, 61, 812, 71, 10, 11]
[812, 812, 812, 44, 121, 61, 812, 71, 10, 11]
[812, 812, 812, 812, 121, 61, 812, 71, 10, 11]
[812, 812, 812, 812, 812, 61, 812, 71, 10, 11]
[812, 812, 812, 812, 812, 812, 812, 71, 10, 11]
[812, 812, 812, 812, 812, 812, 812, 71, 10, 11]
[812, 812, 812, 812, 812, 812, 812, 71, 10, 11]
[812, 812, 812, 812, 812, 812, 812, 71, 11, 11]
[812, 812, 812, 812, 812, 812, 812, 71, 11, 11]感谢您的任何解决方案!
发布于 2018-02-06 22:03:20
试试这个:
array = [1, 42, 321, 44, 121, 61, 812, 71, 10, 11]
number = 1
ArrayIndex = 0
numchange = 0
TotalNumberofLoops = 10
OuterLoop = 0
InnerLoop = 0
while OuterLoop < TotalNumberofLoops:
InnerLoop = OuterLoop + 1
while InnerLoop < TotalNumberofLoops:
if array[OuterLoop] < array[InnerLoop]:
array[OuterLoop], array[InnerLoop] = array[InnerLoop], array[OuterLoop]
InnerLoop = InnerLoop + 1
print(array)
OuterLoop = OuterLoop + 1通过这种方式,元素的交换更具pythonic风格,而且也是正确的。
发布于 2018-07-08 23:06:35
怎么样
def bubble_sort(x):
# bubble sort with early termination - O(N) for nearly sorted
swapped = False
if len(x) > 1:
for i in range(len(x) - 1):
if x[i] > x[i + 1]:
swapped = True
x[i+1], x[i] = x[i], x[i+1]
if swapped:
return bubble_sort(x[0:-1])+[x[-1]]
return xhttps://stackoverflow.com/questions/48644257
复制相似问题