当前位置: 首页 > java >正文

Raptor-冒泡排序法

1.问题描述

对20个20到100范围的随机整数进行从小到大排序操作(使用冒泡排序法)

2.问题思路

  • 首先,20个数据我们需要用一维数组来进行数据存储
  • 其次,我们要让每个数据在20到100之间,并且是整数,这就涉及到了任意范围随机数的生成问题,具体可以看我之前博客里面Raptor中生成任意范围随机数那一部分
  • 然后,我们需要用冒泡排序法进行排序操作(关键步骤,本篇教学内容)
  • 最后,我们需要注意一下数据的展示问题,这不是关键步骤,只是为了让结果更好看一些

3.实现过程

为了让主程序更简洁以及模块化设计,我们多用子图和子程序,这个问题里面我们用到初始化数据子图,展示数据子图和冒泡排序法排序的子程序。关于子图和子程序的用法请见 Raptor-子图与子程序

  1. 初始化数据
    这个子图实现了得到长度为20的一维数组,并且数组中的元素是20100之间的整数,这个表示的是左闭右开区间[20,100)。
    这里写图片描述

  2. 冒泡排序
    冒泡排序法是基于交换来进行排序的方法,本题是从小到大排序,所以是两两比较,如果前面的是较大的数据,把前面的数据交换到后面去,假如数组的长度是n,那么我们从1遍历到n-1,那么第一趟比较完毕后,第n个数一定是最大的;第二趟我们只需要从1遍历到n-2,那么第二趟比较完毕后,第n-1个数一定是倒数第二大的,依次这样操作就可以完成排序。

冒泡排序法中,关键字较小的,就想气泡一样,每次向上漂,也就是排在前面,而关键字较大的,就是石块一样,每次向下沉,也就是排在后面,并且能保证,每一躺排序都有石块沉底,这就是为什么叫冒泡排序法

举例说明:
假如n=7,有七个数,数组名为a,每次我们比较a[j]和a[j+1],a[j]>a[j+1],我们交换a[j]和a[j+1]的数据
原数据:
49 38 65 97 76 13 27
第一趟:
循环变量j从1到6,第7个数是前7个数里面最大的
38 49 65 76 13 27 97
第二趟:
循环变量j从1到5,第6个数是前6个数里面最大的
38 49 65 13 27 76 97
第三趟:
循环变量j从1到4,第5个数是前5个数里面最大的
38 49 13 27 65 76 97
第四趟:
循环变量j从1到3,第4个数是前4个数里面最大的
38 13 27 49 65 76 97
第五趟:
循环变量j从1到2,第3个数是前3个数里面最大的
13 27 38 49 65 76 97
第六趟:
循环变量j从1到1,第2个数是前2个数里面最大的
13 27 38 49 65 76 97

总结规律,可以得到,n个数排序我们需要遍历n-1躺,如果我们记循环变量为i,则外层循环i从1到n-1,对于每一趟来说,我们需要进行n-i次比较,并且我们保证n-i+1是前n-i+1个数里面最大的

实现流程:
第一部分:
part1
第二部分:
part2

  1. 展示数据
    我们需要展示排序前的数据和排序后的数据,因此主程序的逻辑如下图:

主程序:
main

展示数据子图:
show

结果:
result

4.说明

以上是关于冒泡排序法从小到大排序的,从大到小排序的很简单,就是把比较这一步a[j] > a[j+1],改成a[j] < a[j+1]就好了。


以上就是关于Raptor中冒泡排序法的内容,需要程序、代做程序或者有什么问题请联系QQ545030769

http://www.xdnf.cn/news/11262.html

相关文章:

  • 大漠插件7.2422
  • webm转换mp4,四种转换方法任你选!
  • 计算机网络 — UDP协议(看这一篇就可以
  • JNI原理及常用方法概述
  • Sql中的like的用法
  • 添加Microsoft Office Document Image Writer 打印机
  • gcta计算FST、python绘图
  • latex编辑小常识
  • oracle递归函数
  • 企业高性能web服务器【Nginx详解】
  • FusionCharts Free 报表工具
  • 开发者必去的10大国内网站推荐
  • 黄页
  • 微信公众号分销商城源码系统+多商户入驻+互动直播+整点秒杀 带部署教程
  • 关于asp.net的富文本框编辑器,DotNetTextBox的用法详解
  • JQuery lhgdialog使用
  • 论坛博客常用代码合集
  • GET和POST史上最全总结
  • PropertyUtils的使用
  • Elasticsearch 技术分析(九):全文搜索引擎Elasticsearch,这篇文章给讲透了!
  • 粉丝答疑:如何实现高效免杀?
  • 智能聊天助手:数据分析的新兴英雄
  • 千兆光模块和万兆光模块的安装和维护指南
  • 使用U盘安装Fedora14 32bit操作系统(参考自www.osyunwei.com)
  • 如何给网页和代码做HTML加密?
  • 国家授时中心服务器IP地址
  • mega linux教程,LINUX 安装MegaRAID Storage Manager (MSM)安装使用教程
  • wordpress主题_2020年使用的15个顶级WordPress主题
  • 网络安全应急响应----4、DDoS攻击应急响应
  • 使用Teleport Pro离线下载网页所有内容