将冒泡排序改造成函数,实现对一个一维数组中的元素进行排序
时间: 2024-05-04 11:15:56 浏览: 101
好的,可以的。以下是将冒泡排序改造成函数的代码实现:
```python
def bubble_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# 最后 i 个元素已经排好序,不必再遍历
for j in range(0, n-i-1):
# 如果当前元素大于下一个元素,则交换它们的位置
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# 测试代码
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("排序后的数组:")
for i in range(len(arr)):
print("%d" %arr[i])
```
代码中,我们将冒泡排序封装成一个名为`bubble_sort`的函数,函数接收一个一维数组作为参数,实现对数组中的元素进行排序。内部实现和常规冒泡排序一样,但最终把排序好的数组返回。
测试代码中,我们创建一个数组`arr`并调用`bubble_sort`函数,得到排序后的数组。最后打印出排序后的结果。
相关问题
将冒泡排序改造成函数,实现对一个一维数组中的元素进行排序该函数的原型为void sort( inta[],intn);int a[]为待排序的数组,n为数组中元素的个数
好的,您的问题已经收到。以下是将冒泡排序改造成函数的代码:
void sort(int a[], int n) {
int i, j, temp;
for(i = 0; i < n - 1; i++) {
for(j = 0; j < n - i - 1; j++) {
if(a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
该函数会对传入的一维数组 a[] 中的元素进行冒泡排序,排序结果会保存在原数组中。函数的原型为 void sort(int a[], int n),其中 a[] 为待排序的数组,n 为数组中元素的个数。
编写函数,可以对任意一维数组进行降序排序。在主函数中随机生成一有N个元素的一维数组(元素的取值范围载10-90之间),调用排序函数对该数组进行排序,并输出排序结果。
以下是一个实现该功能的 Python 代码:
```python
import random
def bubble_sort_descend(arr):
"""
冒泡排序降序实现
"""
n = len(arr)
for i in range(n):
for j in range(n-i-1):
if arr[j] < arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# 生成随机数组
N = 10
arr = [random.randint(10, 90) for i in range(N)]
# 输出原始数组
print("原始数组:", arr)
# 排序
bubble_sort_descend(arr)
# 输出排序后的数组
print("排序后:", arr)
```
该代码使用冒泡排序算法实现了对一维数组的降序排序。在主函数中,我们首先生成了一个由N个元素组成、元素范围为10-90之间的随机数组,然后调用排序函数bubble_sort_descend对该数组进行排序。最后,我们输出排序后的结果。
阅读全文