Raptor

您所在的位置:网站首页 一维数组流程图简单 Raptor

Raptor

2024-02-18 14:10| 来源: 网络整理| 查看: 265

1.问题描述

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

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

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

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

冒泡排序 冒泡排序法是基于交换来进行排序的方法,本题是从小到大排序,所以是两两比较,如果前面的是较大的数据,把前面的数据交换到后面去,假如数组的长度是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

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

主程序: main

展示数据子图: show

结果: result

4.说明

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

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3