找回密码
 注册
关于网站域名变更的通知
查看: 797|回复: 1
打印 上一主题 下一主题

MATLAB实现自定义的冒泡排序法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-10 10:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
MATLAB实现自定义的冒泡排序法
+ ]9 K! W# U. w
# Q" |+ Q! h& ^; C%% 生成一个随机向量, 并绘制向量 y 排序前的曲线
* r/ m% Y2 t% T, D* [clear;clc;close all8 o6 `, Z+ A& e3 w0 o9 E0 p  U
y=rand(50,1);7 C1 s# K% D" {& a: N
$ @% H: g7 l+ Z# g
figure
( C' s  P! z  P3 _" Uset(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6]);  % 设置 figure 窗口的位置和尺寸9 n  S7 K6 F# Y
subplot(2,1,1)
! _  I. {" y* T) e9 j2 ?6 Iplot(y,'ro--')
6 b6 M* Y) k" k1 U6 C/ xtitle('排序前')) `6 l/ N+ ~; E1 r: T5 |  |) Z

8 V5 l9 H; w& c# q0 \%% 自定义冒泡排序的算法, 对向量 y 执行从小到大的排序
# ^8 H( i1 Y* }2 }+ ]( Y8 rN=length(y);     % 计算 y 里数据的个数
4 a6 a: R. g. |number=0;        % 记录冒泡排序法的计算次数
4 h/ F7 _- R. M: {' Cfor j=1:N-1
$ {* ?8 b6 M2 h    for i=1:N-j
. a! r2 |! K) t$ m* _5 K        if y(i) > y(i+1)   % 判断前后两个数, 是否需要交换位置8 p* A* g: R) T. r2 g
            Temp=y(i);( M# H5 g, L: x5 s! B) ~& H, d5 s
            y(i)=y(i+1);
& t5 x* X8 n/ z! z/ u* q+ E            y(i+1)=Temp;6 N8 @/ N) S* Z! U. h
            number=number+1;
9 }' }& E6 `3 f- H( e2 |0 R# `        end
+ ^8 L, o* Y3 m' p  Z8 E/ x8 V    end
( l- G" j% P" i" Aend0 E  \7 h$ M% m$ r9 W' g
3 r+ n3 B2 k" u% q# u2 C
%% 绘制向量 y 排序后的曲线
2 C& L% m  F' A  B/ m8 U: I3 F0 b5 ?subplot(2,1,2)
) d) K- T2 Q; O1 c' U6 [# I) xplot(y,'b*-')
1 q9 l+ n8 N* f$ \9 Rtitle('排序后')% [! w$ |" a" n! H: o( g' z* F+ M

3 P$ e( Z) G  f. m1 O

该用户从未签到

2#
发表于 2020-3-10 17:45 | 只看该作者
MATLAB实现自定义的冒泡排序法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-2 00:36 , Processed in 0.125000 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表