题目:
程序说明:
因为冒泡排序每次交换都是只交换相邻两个元素,因此现在假设序列长度为n且每一个数都得往后进行交换,第一个数向后进行交换的次数为n-1,第二个数为n-2,第三个数为n-3…最后总次数为:(n-1)+(n-2)+(n-3)+…(n-n+1)=[1+(n-1)] *(n-1)/2=n *(n-1)/2。因此当n等于14时,总次数为91,n等于15时,总次数为105次,因此若要总次数为100次,那可将n长度设为15,只须将第六位数移到第一位即可。因此字符串为jonmlkihgfedcba
全部代码:
def bubble_sort(li,num):
for i in range(len(li)-1): #第i趟排序
for j in range(len(li)-i-1):
if li[j]>li[j+1]: #升序,若要降序排序将大于号改为小于号即可
li[j],li[j+1]=li[j+1],li[j]
num+=1
return num
print(bubble_sort(list('jonmlkihgfedcba'),0))
>>>100