当前位置: 高中信息技术 / 综合题
  • 1. (2023高二上·余姚月考) 分组冒泡排序。分别对数组a的奇数和偶数位置的元素进行冒泡排序,即采用“跳跃式冒泡”的方法,每次跳跃的步长为2,将数组分成2个子序列,分别对这2个子序列进行排序。例如,对数组a=[6,3,5,4,1,2,8,7]进行分组跳跃式升序冒泡排序,排序后的数组a=[1,2,5,3,6,4,8,7]。

    1. (1) 对数组a=[4,5,2,9,6,7,10,3,8,1]进行分组跳跃式升序冒泡排序,则排序后的数组
    2. (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. (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]

微信扫码预览、分享更方便