编写M文件:用起泡法对 10个数由小到大排序,即将相邻两个数比较,将小的调到前头
时间: 2024-02-25 10:56:58 浏览: 106
冒泡法排序对相邻的两个元素进行比较
5星 · 资源好评率100%
以下是用 MATLAB 编写的实现起泡排序的 M 文件:
```matlab
function sorted_arr = bubble_sort(arr)
%BUBBLE_SORT 使用起泡法对数组进行排序
n = length(arr);
for i = 1:n-1
flag = false; % 标记本轮是否有交换
for j = 1:n-i
if arr(j) > arr(j+1)
temp = arr(j);
arr(j) = arr(j+1);
arr(j+1) = temp;
flag = true;
end
end
if ~flag % 如果本轮没有交换,说明已经有序
break;
end
end
sorted_arr = arr;
end
```
使用方法:
1. 将上述代码保存为 `bubble_sort.m` 文件;
2. 在 MATLAB 中调用该函数,传入需要排序的数组,如 `sorted_arr = bubble_sort([3, 8, 1, 6, 2, 7, 4, 5, 10, 9])`;
3. 函数将返回排序后的数组。
注意事项:
1. 该函数实现的是从小到大排序,如果需要从大到小排序,只需要将条件 `arr(j) > arr(j+1)` 改为 `arr(j) < arr(j+1)` 即可;
2. 如果数组中存在非数值类型的元素,该函数可能会出现错误。
阅读全文