【问题标题】:Sort elements only at even indices of an array, in python在python中,仅在数组的偶数索引处对元素进行排序
【发布时间】:2021-12-29 04:51:35
【问题描述】:

我已经给出了示例输入和示例输出。
EVEN 索引仅排序,ODD 索引保持原样。

示例输入:

5
3 9 1 44 6

样本输出:

1 9 3 44 6

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 5去哪儿了?

标签: python python-3.x list


【解决方案1】:

您可以使用修改后的冒泡排序技术执行以下操作:

def sortEvens(arr):
    arrLen = len(arr)
    for i in range(0, arrLen, 2):              # Jump by 2 units
        for j in range(0, arrLen-i-2, 2):      # Jump by 2 units
            if arr[j] > arr[j+2]:              # Comparing alternative elements
                temp = arr[j]
                arr[j] = arr[j+2]
                arr[j+2] = temp

    return arr


arr = [10, 45, 0, -34, 5, -899, 4]
print(sortEvens(arr))

# OUTPUT : [0, 45, 4, -34, 5, -899, 10]
positions-> 0  1   2   3   4    5    6

【讨论】:

    【解决方案2】:

    您可以使用相同下标的排序值分配一个跨步下标:

    arr = [3, 9, 1, 44, 6]
    
    arr[::2] = sorted(arr[::2])  # assign even items with their sorted values
    
    print(arr) # [1, 9, 3, 44, 6]
    

    【讨论】:

      猜你喜欢
      • 2020-06-22
      • 2015-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-01
      • 2017-11-02
      • 2019-09-02
      • 2020-01-07
      相关资源
      最近更新 更多