冒泡排序法和选择排序法的区别_c语言冒泡法排序10个数

作者:绿皮长条瓜

目录

一、算法介绍

二、MATLAB实现

三、两个例子

一、算法介绍

冒泡排序(Bubble Sort)算法是一种计算科学领域的较简单的排序算法。它重复地走访过要排序的元素列,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

算法步骤如下:

  • step1:比较相邻的元素,如果第一个比第二个大,就交换他们两个。
  • step2:对每一对相邻元素做步骤step1,从开始第一对到结尾的最后一对。这步之后,最后的元素应该会是最大的数。
  • step3:针对所有的元素重复以上的步骤,除了最后一个。
  • step4:持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

二、MATLAB实现

利用MATLAB编写bubble_sort()函数对数据进行排序,函数如下:

%Date:2019-4-15 %Writer:绿皮长条瓜 %%本程序的目的是利用冒泡排序算法对已知某组数字或字母(根据ACSII码)进行排序 function y = bubble_sort(A) %参数A为向量或矩阵 n = numel(A); %n为A中数字或字母的个数 E = A; A = reshape(A, n, 1); %令A重组为向量 B = 1:n; if isletter(A) == zeros(size(A,1),size(A,2)) %待排序数据为数字 flag = 0; elseif isletter(A) == ones(size(A,1),size(A,2)) %待排序数字为字母,根据ASCII码从小到大排序情况 A = int2str(A); %计算字母对应的ASCII码 A = str2num(A); flag = 1; else errordlg('输入参数不符合要求!', 'Warning!') end A = [A,B']; for i = 1:n-1 for j = 1:n-i if A(j) > A(j+1); temp = A(j,:); %核心代码 A(j,:) = A(j+1,:); A(j+1,:) = temp; end end end A = A(:,2); fprintf('\n经冒泡排序算法排序后的结果如下:\n\n') %输出排序结果 for i = 1:n if flag == 0 fprintf('%f ', E(A(i))) else fprintf('%c ', E(A(i))) end if mod(i,8) == 0 fprintf('\n\n') end end fprintf('\n') end

三、两个例子

例1:对矩阵A中各元素利用冒泡排序法从小到大进行排序。利用MATLAB调用上述函数排序结果如下:

>> A = [1 5 6 3;15 4 6 8;9 17 13 11]; >> bubble_sort(A) 经冒泡排序算法排序后的结果如下: 1.000000 3.000000 4.000000 5.000000 6.000000 6.000000 8.000000 9.000000 11.000000 13.000000 15.000000 17.000000

例2:对字符串向量B中各字母按照ASCII码利用冒泡排序法从小到大进行排序。利用MATLAB调用上述函数排序结果如下:

>> B = ['Yida', 'Chen']; >> bubble_sort(B) 经冒泡排序算法排序后的结果如下: C Y a d e h i n

冒泡排序法和选择排序法的区别_c语言冒泡法排序10个数

本文【冒泡排序法和选择排序法的区别_c语言冒泡法排序10个数】由作者: 前端后端 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4245.html

(0)
上一篇 2023-03-11 08:29:28
下一篇 2023-03-11 08:39:42

相关推荐

  • 苹果电脑如何删除用户_苹果电脑无法删除管理员账户

    Mac在macOS Monterey 或 Big Sur 中没有管理员帐户怎么办?为大家带来了修复方法,一起来看看吧。 缺少Mac管理员帐户?在macOS中创建新的管理员帐户 此过程将涉及启动到恢复模式以从 Mac 中删除设置文件,这允许 macOS 设置助手再次运行,从而允许您在 Mac 上创建新的管理员帐户。这适用于 macOS Monterey 和 B…

    2023-03-10
    500
  • 计算机二级c语言是笔试还是机考

    全国计算机等级考试NCRE是经过教育局批准,由教育部考试中心举办,面向社会,用来考察应试人员计算机应用知识与技能的全国性计算机水平考试。NCRE在全国范围内每年举办两次考试,考试时间一般安排在3月最后一个周六至下周周一、9月倒数第二个周六至下周周一。 那你了解计算机等级考试吗? 一、考试级别 全国计算机等级考试分了四个级别,分别为一级、二级、三级、四级四个级…

    2023-03-11
    700
  • Shell语言是不是图灵完备?_shell脚本是什么语言

    计算机编程语言可用于将指令传达给计算机。它们基于某些句法和语义规则,定义了编程语言中每种结构的含义。 现在我得到了一个凡是可以找得到的每种编程语言的列表。我将它们分为以下几类: 解释型编程语言 函数式编程语言 编译型编程语言 过程式编程语言 脚本编程语言 标记编程语言 基于逻辑的编程语言 并发编程语言 面向对象编程语言 解释型编程语言 解释型语言是这样一种编…

    2023-03-09
    700
  • matlab递归函数怎么写 编写一个递归函数

    前言 本篇文章主要是记录一下在 GScript 中实现递归调用时所遇到的坑,类似的问题在中文互联网上我几乎没有找到相关的内容,所以还是很有必要记录一下。 在开始之前还是简单介绍下本次更新的 GScript v0.0.9 所包含的内容: 支持可变参数 优化 append 函数语义 优化编译错误信息 最后一个就是支持递归调用 先看第一个可变参数: //forma…

    2023-03-14
    200
  • md5校验码怎么用_md5校验失败什么意思

    哈喽,大家好!这里是能看懂的DNF全职百科、百科教学、热点资讯;看角色攻略,看我就够了,一站式教学,一篇看完。 本期内容:DNF冷知识——游戏安装失败、MD5校验失败,各种问题解决教学。 相信很多玩家都遇到过游戏安装失败的情况,而且还不是统一的问题,这里给大家提供解决办法,亲测有用 01 游戏安装失败7001004 官方下载 1、先检查自己的网络是否丢包,一…

    2023-03-19
    000
  • 匈牙利命名法和驼峰命名法好处

    关于变量的命名,这又是一个容易引发程序员论战的话题。如何命名才能更具有可读性、易写性与明义性呢?众说纷纭。 本期“Python为什么”栏目,我们将聚焦于变量命名中的连接方式,来切入这块是非之地,想要回答的问题是——Python 为什么要推荐蛇形命名法? 首先一点,对于单个字符或者单词(例如:a、A、PYTHON、Cat),当它们被用作变量名时,大致有全小写、…

    2023-03-15
    200
  • jsp分页功能实现两种方法_java分页怎么实现

    采用之前所说三层架构方式 获取数据库连接使用的是JNDI连接池方式 这次重点在于多了一个page类,和继承于page的子类用于封装页面数量 数据总数 等等 首先是实体类 page类 继承于page类的ListAdmin类 数据访问层 业务逻辑层 表示层servlet 表示层index.jsp 以上都是本人自己所做,所有思路都是自己所学 ,所理解的结晶! 之所…

    2023-03-10
    200
  • spring框架是前端还是后端_web前端三大主流框架

    Web开发人员应该在实践中快速、灵活、可靠地完成任务。由于最近引入的框架或开发工具通常会产生更好的结果,开发人员必须不断提升他们的技能和新技术知识。但是这些web开发框架是什么呢? 为了方便起见,我们将Web开发框架列表分为两部分:前端框架、后端框架。 前端Web开发框架 1. Angular Angular是一个开源的javascript框架,旨在创建单页…

    2023-03-10
    800
  • vb程序设计教程课后答案(vb程序设计第五版课后题答案)

    VisualBasic程序设计试题 国开-下放-7069VisualBasic程序设计 1、随机文件是因为() 2、顺序文件是因为() 3、文件号最大可取值为() 4、Print#1,STR$1中的Print是() 5、以下的属性和方法中()可重定义坐标系。 6、VB6.0是一种面向()的编程环境。 7、要使Forml窗体的标题栏显示"欢迎使用VB…

    2023-03-17
    300
  • shell脚本for循环语句

    while语句 while判断条件是否成立,若成立则进入while的分支,举例如下: #/bin/bash var1=1 var2=4 while [ $var1 -lt 3 ] && [ $var2 -gt 0 ];do echo "$var1 * $var2 = $[$var1 * $var2]" var1=$[$va…

    2023-03-08
    800

发表回复

登录后才能评论
返回顶部
错说博客上线啦!