MATLAB双向冒泡排序怎么实现(求详细步骤)
2条回答 默认 最新
- 技术专家团-Joel 2022-01-01 07:07关注
你好同学,matlab两头冒泡排序算法可以这么做(基本上都注释了):
clc;clear array = [1,3,2,3,8,4]; % 待排序的数组 left = 1; % 左边为1 right = numel(array); % 右边为数组的长度 shift = 1; % 初始shift while (left < right) for i = left : right-1 % 左到右排列 if (array(i) > array(i+1)) % 如果左边大于右边 array([i,i+1])= array([i+1,i]); % 交换顺序 shift = i; end end right = shift; % 更新右端位置 for i = right-1:-1:left % 右到左排列 if (array(i) > array(i+1)) % 如果左边大于右边 array([i,i+1])= array([i+1,i]); % 交换顺序 shift = i + 1; end end left = shift; % 更新左端位置 end disp('最终排列好的数组为') disp(array)
这个例子输出的结果为:
最终排列好的数组为 1 2 3 3 4 8
可见排序正确输出了结果
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 3无用 1