【发布时间】: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
我已经给出了示例输入和示例输出。
EVEN 索引仅排序,ODD 索引保持原样。
示例输入:
5
3 9 1 44 6
样本输出:
1 9 3 44 6
【问题讨论】:
标签: python python-3.x list
您可以使用修改后的冒泡排序技术执行以下操作:
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
【讨论】:
您可以使用相同下标的排序值分配一个跨步下标:
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]
【讨论】: