簡體   English   中英

如何交換數組中的數字?

[英]How do I swap numbers in an array?

我很好奇如何編寫代碼,以便將數組中的第一個元素與最小的數字交換,並將最大的元素與最后一個元素進行相同的操作,而無需對整個數組進行排序並僅交換這 4 個數字。

您必須迭代整個數組以找到最小或最大元素的索引。 在你搜索之后,交換真的很容易。 例如:

numbers = [3,6,2,7,1,10,2]
current_min = current_max = numbers[0]
min_idx = max_idx = 0 
for idx, num in enumerate(numbers):
    if num < current_min:
        current_min = num
        min_idx = idx
    elif num > current_max:
        current_max = num
        max_idx = idx
# do the swap
numbers[0], numbers[min_idx] = numbers[min_idx], numbers[0]
numbers[-1], numbers[max_idx] = numbers[max_idx], numbers[-1]

為了找到最小或最大的交換,您仍然需要排序。 您可能在最后一個索引處具有最小的索引,並且發現您必須將每個元素比較一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM