用python中类和对象知识编写编写程序:已知一个有穷整数数组,请分别采用冒泡排序、快速排序、直接选择排序完成从小到大的排序操作。 输入数组:{1,2,5,4,7,6,3,0}。 输出:{0,1,2,3,4,5,6,7}。
时间: 2024-03-24 08:37:30 浏览: 39
请编写程序,利用冒泡算法实现对数组{25,24,12,76,101,96,28} 的排序。
好的,根据您的要求,我来为您编写这个程序。代码如下:
```python
class Sort:
def __init__(self, arr):
self.arr = arr
# 冒泡排序
def bubble_sort(self):
n = len(self.arr)
for i in range(n):
for j in range(n - i - 1):
if self.arr[j] > self.arr[j + 1]:
self.arr[j], self.arr[j + 1] = self.arr[j + 1], self.arr[j]
return self.arr
# 快速排序
def quick_sort(self, l, r):
if l < r:
pivot = self.arr[r]
i = l - 1
for j in range(l, r):
if self.arr[j] < pivot:
i += 1
self.arr[i], self.arr[j] = self.arr[j], self.arr[i]
self.arr[i + 1], self.arr[r] = self.arr[r], self.arr[i + 1]
mid = i + 1
self.quick_sort(l, mid - 1)
self.quick_sort(mid + 1, r)
return self.arr
# 直接选择排序
def select_sort(self):
n = len(self.arr)
for i in range(n):
min_idx = i
for j in range(i + 1, n):
if self.arr[j] < self.arr[min_idx]:
min_idx = j
self.arr[i], self.arr[min_idx] = self.arr[min_idx], self.arr[i]
return self.arr
if __name__ == '__main__':
arr = [1, 2, 5, 4, 7, 6, 3, 0]
s = Sort(arr)
print('原数组:', arr)
print('冒泡排序后的数组:', s.bubble_sort())
print('快速排序后的数组:', s.quick_sort(0, len(arr) - 1))
print('直接选择排序后的数组:', s.select_sort())
```
运行结果如下:
```
原数组: [1, 2, 5, 4, 7, 6, 3, 0]
冒泡排序后的数组: [0, 1, 2, 3, 4, 5, 6, 7]
快速排序后的数组: [0, 1, 2, 3, 4, 5, 6, 7]
直接选择排序后的数组: [0, 1, 2, 3, 4, 5, 6, 7]
```
以上就是根据您的要求编写的程序,如果您还有其他问题,欢迎随时提出。
阅读全文