14.
分组冒泡排序。分别对数组a的奇数和偶数位置的元素进行冒泡排序,即采用“跳跃式冒泡”的方法,每次跳跃的步长为2,将数组分成2个子序列,分别对这2个子序列进行排序。例如,对数组a=[6,3,5,4,1,2,8,7]进行分组跳跃式升序冒泡排序,排序后的数组a=[1,2,5,3,6,4,8,7]。
(1)
对数组a=[4,5,2,9,6,7,10,3,8,1]进行分组跳跃式升序冒泡排序,则排序后的数组
(2)
实现上述功能的Python程序如下,请在划线处填入合适的代码。 import random
n=8
a=[random.randint(1 ,9) for i in range(n)]
for i in range(0,n,)
forj in range()
if a[j]<a[j-2]:
a[j],a[j-2]=a[j-2],a[j]
(3)
将分组跳跃式冒泡排序推广到每次跳跃的步长为m的情形,例如对数组a=[6,3,5,4,1,2,8,7]进行分组跳跃式升序冒泡排序,当m=3时,排序后的数组a=[4,1 ,26,3,5,6,7]。 相关代码如下,请在划线处填入合适的代码。
import random
m=int(input(“请输入步长m:”))
n=8
a=[random.randint(1,9) for i in range(n)]
print(“排序前”,a)
for i in range()
for j in range()
if a[j]<a[j-m]:
a[j],a[j-m]=a[j-m],a[j]