用python写一个猴子排序
时间: 2024-05-05 14:16:45 浏览: 111
猴子排序是一种随机化排序算法,它的原理是不断随机交换数组中的元素,直到数组有序。
以下是用Python实现猴子排序的代码:
```python
import random
def monkey_sort(arr):
while not is_sorted(arr):
shuffle(arr)
return arr
def is_sorted(arr):
for i in range(len(arr) - 1):
if arr[i] > arr[i+1]:
return False
return True
def shuffle(arr):
for i in range(len(arr)):
j = random.randint(0, len(arr)-1)
arr[i], arr[j] = arr[j], arr[i]
```
在这个代码中,`monkey_sort`函数接受一个数组作为参数,并且不断调用`shuffle`函数随机交换数组中的元素,直到数组有序为止。`is_sorted`函数用于判断数组是否已经有序,如果有序则返回`True`,否则返回`False`。`shuffle`函数用于随机交换数组中的元素。
以下是一个使用猴子排序对数组进行排序的示例:
```python
arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_arr = monkey_sort(arr)
print(sorted_arr)
```
输出结果为:
```
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
```
阅读全文