高职考技能提升教程013期 冒泡排序法和选择排序法

简介: 高职考技能提升教程013期 冒泡排序法和选择排序法

冒泡排序法原理



数据:3、9、6、1

排序:

1.使用相邻两个数值之间两两比较的方式。

2.如果是从小到大排序,比较的时候,如果第一个数值比第二个数值要大,那么两个数值之间进行交换。

3.如果是从小到大进行排序,每次比较完成后,最后一个数值就是最大的。


冒泡比较过程

数据:3、9、6、1  从小到大排序

第1轮第1次:3、9、6、1

第1轮第2次:3、6、9、1

第1轮第3次:3、6、1、9 这里产生一个最大值在最后

第2轮第1次:3、6、1、9

第2轮第2次:3、1、6、9这里产生第二大

第3轮第1次:1、3、6、9这里产生最终的排序结果



数组声明

法一:明确数组的元素数量

Dim a(9) as integer

还可以对索引进行定义

Dim a(1 To 6) As Integer

法二:不明确数组元素个数

Dim a() as integer

重新定义个数

Redim a(9)


冒泡排序法实战案例


综合案例试题

分析:

1.利用时钟控件让6个数字进行不断变化

2.利用冒泡排序法经6个数字进行排序

3.最大数其实就是排序后的最大数先输出

4.最小数其实就是最小的数值先输出,依次输出,注意0的情况。


实战过程

分析得到这个高考模拟题是选择排序法,就要用到选择排序法的思想:如果从大到小排序,那么每一轮选出一个最大值的索引,放到前一个位置。

1.先把时钟控件代码写好,分别能够对6个文本控件赋值

2.将代码复制到停止按钮中

3.分析已有的代码,我们通过分析得知,这个程序是要进行从大到小进行排序的。

4.通过循环将文本框中的6个数值分别存入a数组中。

5.分析得到a(t)表示每一轮的最大值,t表示每一轮比较出来的最大值的索引(这里有选择排序的意思)

6.当输出最小值的时候要注意,寻找到非零的位置的数值的索引,并且在输出的时候不能输出这个索引的值。



总结

1.写程序的特质,一定要有耐心!

2.注意观察变量的值,观察程序结果是否正确。

3.选择排序法是要找到最值的索引,并且要用最值索引进行比较。每一轮找到一个最值。

4.冒泡排序法是相邻数值之间的比较,每一轮找到一个最值。

5.学会程序调试的方式,这样能够快速解决问题。

软件设计界面:



源代码分享:

Option Explicit
'从小到大进行排序
Private Sub Command1_Click()
Dim i As Integer '第几轮
Dim j As Integer '第几次
For i = 0 To 2 Step 1
    For j = 0 To 2 - i Step 1
        '如果第一个数值比第二个数值要大,就要交换
        If Val(Text1(j).Text) > Val(Text1(j + 1).Text) Then
            Dim t As String '实现交换
            t = Text1(j).Text
            Text1(j).Text = Text1(j + 1).Text
            Text1(j + 1).Text = t
        End If
    Next j
Next i
End Sub
相关文章
|
测试技术 开发工具 Android开发
跨平台的视频采集、直播SDK SmarterStreaming
SmarterStreaming 跨平台的视频采集、直播SDK(支持Windows/android/iOS,支持私有协议和RTMP推流),也许是国内最靠谱的视频直播推流、播放SDK之一,助您轻松实现类似于花椒、映客、斗鱼手机直播推送与播放。
2167 0
|
SQL 关系型数据库 MySQL
MySQL 窗口函数详解:分析性查询的强大工具
MySQL 窗口函数从 8.0 版本开始支持,提供了一种灵活的方式处理 SQL 查询中的数据。无需分组即可对行集进行分析,常用于计算排名、累计和、移动平均值等。基本语法包括 `function_name([arguments]) OVER ([PARTITION BY columns] [ORDER BY columns] [frame_clause])`,常见函数有 `ROW_NUMBER()`, `RANK()`, `DENSE_RANK()`, `SUM()`, `AVG()` 等。窗口框架定义了计算聚合值时应包含的行。适用于复杂数据操作和分析报告。
543 11
|
搜索推荐 算法 C++
c++排序算法——冒泡排序(不会的一定要看,超级详细)
c++排序算法——冒泡排序(不会的一定要看,超级详细)
3372 0
|
存储 小程序 编译器
数据在内存中的存储(C语言)(上)
数据在内存中的存储(C语言)
149 0
|
Java API
线程池没你想的那么简单(中)
自己动手写一个五脏俱全的线程池,同时会了解到线程池的工作原理,以及如何在工作中合理的利用线程池。
|
存储 SQL 关系型数据库
InnoDB索引允许NULL对性能有影响吗(2)
InnoDB索引允许NULL对性能有影响吗
123 0
|
1天前
|
数据采集 人工智能 安全
|
10天前
|
云安全 监控 安全
|
2天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
906 150