Вот, пожалуй, самая наивная реализация сортировки.
Генератор выдаёт по одному элементу исходного массива в порядке возрастания.

```python
def naively_sorted(data):
    unsorted = list(data)
    while unsorted:
        smallest = min(unsorted)
        yield smallest
        unsorted.remove(smallest)
```

Проверка:
```python
print(list(naively_sorted([5, 3, 1, float("-inf"), 1e-5, 3, 777, float("inf"), -12, -.5])))
# prints: [-inf, -12, -0.5, 1e-05, 1, 3, 3, 5, 777, inf]
```
О производительности тут, конечно, говорить не приходится, но если вы хотите перебрать лишь несколько наименьших элементов до достижения какого-то условия, то, может быть, такой подход вам пригодится.
```
for x in naively_sorted([5, -7, 3, 15, 5, -5, 12]):
     if x > 0:
         print(f"The first positive number is {x}.")
         break
# prints: The first positive number is 3.
```
นี่อาจเป็นการดำเนินการเรียงลำดับที่ไร้เดียงสาที่สุด ตัวสร้างจะสร้างองค์ประกอบหนึ่งของอาร์เรย์ต้นทางโดยเรียงจากน้อยไปหามาก ```python def naively_sorted(data): unsorted = list(data) ในขณะที่ไม่เรียงลำดับ: เล็กที่สุด = min(ไม่เรียงลำดับ) ให้ผลน้อยที่สุด unsorted.remove(เล็กที่สุด) ``` ตรวจสอบ: ```python print(list(naively_sorted([5 , 3, 1, float("-inf"), 1e-5, 3, 777, float("inf"), -12, -.5]))) # พิมพ์: [-inf, -12, -0.5 , 1e-05, 1, 3, 3, 5, 777, inf] ``` แน่นอนว่าไม่มีประสิทธิภาพที่จะพูดถึงในที่นี้ แต่ถ้าคุณต้องการวนซ้ำองค์ประกอบที่เล็กที่สุดเพียงไม่กี่อย่างจนกระทั่งมีเงื่อนไขบางประการ ถึงแล้วบางทีแนวทางนี้อาจเป็นประโยชน์กับคุณ ``` สำหรับ x ใน naively_sorted([5, -7, 3, 15, 5, -5, 12]): ถ้า x > 0: print(f"จำนวนบวกตัวแรกคือ {x}.") แบ่ง # พิมพ์ : จำนวนบวกตัวแรกคือ 3 ```
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence