Lập trình cạnh tranhDễ dàng

Sắp xếp sóng

Hướng dẫn chi tiết và cách triển khai Python cho bài toán 'Sắp xếp theo sóng'.

Tuyên bố vấn đề

Dễ dàng

Viết hàm wave_sort(arr) nhận vào một mảng các số nguyên arr, sắp xếp mảng đó theo thứ tự tăng dần rồi hoán đổi mọi cặp phần tử liền kề bắt đầu từ chỉ mục 0 (tức là hoán đổi mảng [0] và mảng [1], sau đó đến mảng [2] và mảng [3], v.v.) để tạo ra mảng được sắp xếp theo sóng thỏa mãn thuộc tính arr[0] >= arr[1] <= arr[2] >= arr[3] <= arr[4].... Trả về mảng kết quả.

Ràng buộc
  • 1 <= len(arr) <= 10^5
  • -10^9 <= arr[i] <= 10^9

Ví dụ

Example 1
Input
wave_sort([3, 6, 5, 10, 7, 20])
Output
[5, 3, 7, 6, 20, 10]
Explanation

First, sort the array to get [3, 5, 6, 7, 10, 20]. Swapping adjacent pairs: swap 3 and 5 -> [5, 3...], swap 6 and 7 -> [..., 7, 6...], swap 10 and 20 -> [..., 20, 10]. Result is [5, 3, 7, 6, 20, 10].

Example 2
Input
wave_sort([10, 90, 49, 2, 1, 5, 23])
Output
[2, 1, 10, 5, 49, 23, 90]
Explanation

Sort array to [1, 2, 5, 10, 23, 49, 90]. Swapping adjacent pairs gives [2, 1, 10, 5, 49, 23, 90].

Need a Hint?
Hãy cân nhắc sử dụng các cấu trúc dữ liệu dành riêng cho Tìm kiếm & Sắp xếp như tập hợp hoặc đống.
Edge Cases to Watch
  • Cấu trúc đầu vào trống
  • Đầu vào phần tử đơn
  • Giới hạn số lớn

Sẵn sàng để giải quyết?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Mở trong Trình chỉnh sửa
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Tài nguyên Python được đề xuất

Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.