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

Chương trình sắp xếp tất cả các số chẵn và số lẻ theo thứ tự tăng và giảm tương ứng trong Python

Giả sử chúng ta có một danh sách các số được gọi là num, chúng ta phải sắp xếp mảng bằng cách duy trì các tiêu chí theo sau

  • Các số chẵn được sắp xếp theo thứ tự tăng dần
  • Các số lẻ được sắp xếp theo thứ tự giảm dần
  • Vị trí tương đối của số chẵn và số lẻ không được thay đổi.

Vì vậy, nếu đầu vào là [9, 14, 12, 91, -4, 5], thì đầu ra sẽ là [91, -4, 12, 9, 14, 5]

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

  • evens:=danh sách các số hạng chẵn trong mảng nums
  • tỷ lệ cược:=danh sách các số hạng lẻ trong mảng nums
  • sắp xếp các lò danh sách
  • chẵn_i:=0, lẻ_i:=0
  • đối với chỉ mục trong phạm vi 0 đến kích thước là num, hãy thực hiện
    • nếu nums [index] mod 2 giống 0, thì
      • nums [index]:=evens [Even_i]
      • Even_i:=Even_i + 1
    • nếu không,
      • nums [chỉ số]:=tỷ lệ cược [lẻ_i]
      • lẻ_i:=lẻ_i + 1
  • trả về số

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

Ví dụ

 class Giải pháp:def giải (self, nums):evens =[num for num in nums if num% 2 ==0] rate =[num for num in nums if num% 2! =0] evens.sort ( ) rate.sort (reverse =True) Even_i =0 retail_i =0 for index in range (len (nums)):if nums [index]% 2 ==0:nums [index] =evens [Even_i] Even_i + =1 if 

Đầu vào

 [9, 14, 12, 91, -4, 5] 

Đầu ra

 [91, -4, 12, 9, 14, 5]