Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem mảng đã cho gần như đã được sắp xếp hay chưa (các phần tử nằm cách xa nhau nhất một vị trí) trong Python

Giả sử chúng ta có một mảng số được gọi là nums, trong đó tất cả các phần tử là duy nhất. Chúng ta phải kiểm tra xem nums gần như đã được sắp xếp hay chưa. Như chúng ta biết, một mảng gần như được sắp xếp khi bất kỳ phần tử nào của nó có thể xuất hiện cách vị trí ban đầu của nó tối đa 1 khoảng cách trong mảng đã sắp xếp.

Vì vậy, nếu đầu vào giống như nums =[10, 30, 20, 40], thì đầu ra sẽ là True vì 10 được đặt ở vị trí ban đầu và tất cả các phần tử khác đều ở vị trí tối đa cách vị trí thực của chúng.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • i:=0
  • while i
  • nếu nums [i]> nums [i + 1], thì
    • hoán đổi nums [i] và nums [i + 1]
    • i:=i + 1
  • i:=i + 1
  • đối với tôi trong phạm vi từ 0 đến kích thước là nums - 1, thực hiện
    • nếu nums [i]> nums [i + 1], thì
      • trả về Sai
  • trả về True
  • Ví dụ

    Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

    def solve(nums):
       i = 0
       while i < len(nums) - 1:
          if nums[i] > nums[i + 1]:
             nums[i], nums[i + 1] = nums[i + 1], nums[i]
             i += 1
          i += 1
       for i in range(len(nums) - 1):
          if nums[i] > nums[i + 1]:
             return False
       return True
    nums = [10, 30, 20, 40]
    print(solve(nums))

    Đầu vào

    [10, 30, 20, 40]

    Đầu ra

    True