Làm thế nào để bạn tìm thấy số lớn thứ n trong python?
Cho một danh sách các số nguyên, nhiệm vụ là tìm N phần tử lớn nhất với giả sử kích thước của danh sách lớn hơn hoặc bằng o N. ví dụ Show Nội dung chính Hiển thị
Input : [4, 5, 1, 2, 9] N = 2 Output : [9, 5] Input : [81, 52, 45, 10, 3, 2, 96] N = 3 Output : [81, 96, 52] Khuyến khích. Vui lòng thử cách tiếp cận của bạn trên {IDE} trước, trước khi chuyển sang giải phápMột giải pháp đơn giản duyệt qua danh sách đã cho N lần. Trong mỗi lần duyệt, hãy tìm giá trị lớn nhất, thêm giá trị đó vào kết quả và xóa giá trị đó khỏi danh sách. Dưới đây là việc thực hiện. Python3[85, 41]7 [85, 41]8 [85, 41]9 [85, 41]0 [85, 41]0 [85, 41]1 [85, 41]9 [85, 41]3 [85, 41]4 [85, 41]5 [85, 41]6 [85, 41]7 [85, 41]8 [85, 41]9 [85, 41]00 [85, 41]01 [85, 41]0 [85, 41]8 [85, 41]00 [85, 41]3 [85, 41]06 [85, 41]5 [85, 41]6 [85, 41]7 [85, 41]00 [85, 41]01 [85, 41]02 [85, 41]03 [85, 41]04 [85, 41]05 [85, 41]01____10 [85, 41]08 [85, 41]00 [85, 41]00 [85, 41]00 [85, 41]02 [85, 41]9 [85, 41]04____305 [85, 41]06 [85, 41]0 [85, 41]08 [85, 41]09 [85, 41]90 [85, 41]91 [85, 41]90 [85, 41]93 [85, 41]90 [85, 41]95 [85, 41]90 [85, 41]8 [85, 41]90 [85, 41]99 [85, 41]90 [85, 41]71 [85, 41]90 [85, 41]91 [85, 41]90 [85, 41]75 [85, 41]76 [85, 41]77 [85, 41]0 [85, 41]09 [85, 41]80 đầu ra [85, 41] Độ phức tạp về thời gian. O(N * size) trong đó kích thước là kích thước của danh sách đã cho. Phương pháp 2. Python3[85, 41]81 [85, 41]0 [85, 41]08 [85, 41]84 [85, 41]90 [85, 41]86 [85, 41]90 [85, 41]88 [85, 41]90 [85, 41]90 [85, 41]90 [85, 41]92 [85, 41]90 [85, 41]94 [85, 41]95 [85, 41]90 [85, 41]97 [85, 41]76 [85, 41]99 [85, 41]0 [85, 41]01 [85, 41]02 [85, 41]04 [85, 41]04 [85, 41]94 [85, 41]06 đầu ra [85, 41]0 Thời gian phức tạp. O(nlogn) Không gian phụ trợ. Ô(1) Vui lòng tham khảo k phần tử lớn nhất (hoặc nhỏ nhất) trong một mảng để có các giải pháp hiệu quả hơn cho vấn đề này Giả sử chúng ta có một mảng chưa sắp xếp, chúng ta phải tìm phần tử lớn thứ k từ mảng đó. Vì vậy, nếu mảng là [3,2,1,5,6,4] và k = 2, thì kết quả sẽ là 5 Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
|