Python Thông tin cơ bảnDễ dàng

Sắp xếp nửa đầu tăng dần và nửa sau giảm dần

Hướng dẫn chi tiết và cách triển khai Python cho bài toán 'Sắp xếp nửa đầu tăng dần và nửa sau giảm dần'.

Tuyên bố vấn đề

Dễ dàng

Viết hàm sort_half(arr) nhận danh sách các số nguyên và trả về một danh sách mới trong đó nửa đầu được sắp xếp theo thứ tự tăng dần và nửa sau được sắp xếp theo thứ tự giảm dần. Nếu mảng có độ dài lẻ thì phần tử ở giữa thuộc nửa đầu. Ví dụ: đối với độ dài 5, 3 phần tử đầu tiên được sắp xếp tăng dần và 2 phần tử cuối cùng được sắp xếp giảm dần.

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

Ví dụ

Example 1
Input
arr = [5, 2, 8, 1, 4, 7]
Output
[1, 2, 5, 8, 7, 4]
Explanation

First half [5,2,8] sorted ascending: [1,2,5]. Second half [1,4,7] sorted descending: [8,7,4]. Wait — we split the original array: first 3 elements [5,2,8] sort ascending -> [2,5,8], last 3 [1,4,7] sort descending -> [7,4,1]. Result: [2,5,8,7,4,1].

Example 2
Input
arr = [3, 1, 2, 5, 4]
Output
[1, 2, 3, 5, 4]
Explanation

First half (3 elements) [3,1,2] sorted ascending: [1,2,3]. Second half (2 elements) [5,4] sorted descending: [5,4]. Result: [1,2,3,5,4].

Example 3
Input
arr = [9, 3, 6, 1]
Output
[3, 9, 6, 1]
Explanation

First half [9,3] ascending: [3,9]. Second half [6,1] descending: [6,1]. Result: [3,9,6,1].

Need a Hint?
Hãy cân nhắc việc sử dụng các cấu trúc dữ liệu dành riêng cho Mảng như tập hợp hoặc vùng heap.
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.