高职考技能提升教程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
相关文章
|
7月前
【洛谷 P1093】[NOIP2007 普及组] 奖学金 题解(结构体排序)
**NOIP2007普及组奖学金问题**:根据学生语文、数学、英语三科成绩计算总分并排序。若总分相同,按语文成绩高者优先,再相同则学号小者靠前。程序需输出前5名学生的学号和总分。输入包括学生人数`n`和每人的三科成绩,输出为5行结果。示例输入和输出已给出,代码通过定义结构体和自定义比较器实现排序。
61 0
|
机器学习/深度学习 存储 C语言
【八大排序(三)】堆排序-搞文学出生的计算机教授
【八大排序(三)】堆排序-搞文学出生的计算机教授
|
算法 测试技术 C++
第十一届蓝桥杯第三场软件类省赛 C++ B组 题解(一)
第十一届蓝桥杯第三场软件类省赛 C++ B组 题解
114 0
|
算法 测试技术 C++
第十一届蓝桥杯第三场软件类省赛 C++ B组 题解(二)
第十一届蓝桥杯第三场软件类省赛 C++ B组 题解
164 0
|
机器学习/深度学习 人工智能 程序员
2023年 团体程序设计天梯赛个人感悟及总结(附题解)——遗憾国三
⭐L1一阶题 ⭐L1-089 最好的文档 (5分)—水题 👉👉👉👉👉👉L1-089 最好的文档👈👈👈👈👈👈 有一位软件工程师说过一句很有道理的话:“Good code is its own best documentation.”(好代码本身就是最好的文档)。本题就请你直接在屏幕上输出这句话。 输入格式: 本题没有输入。 输出格式: 在一行中输出 Good code is its own best documentation.。 输入样例: 无 输出样例: Good code is its own best documentation.
814 0
|
Linux 测试技术 容器
2020年 团体程序设计天梯赛——题解集(1)
⭐L1一阶题 (虽然比较基础但是是很重要的一部分,且一些题目有一定难度哦!) ⭐L1-065 嫑废话上代码 (5分) 本题题目链接!!!!! Linux 之父 Linus Torvalds 的名言是:“Talk is cheap. Show me the code.”(嫑废话,上代码)。本题就请你直接在屏幕上输出这句话。 输入格式: 本题没有输入。
242 0
|
人工智能 算法 安全
2022年 团体程序设计天梯赛——题解集(2)
⭐L1一阶题 (虽然比较基础但是是很重要的一部分,且一些题目有一定难度哦!) ⭐L1-081 今天我要赢 (5分)——水题 本题题目链接!!!!! 2018 年我们曾经出过一题,是输出“2018 我们要赢”。今年是 2022 年,你要输出的句子变成了“我要赢!就在今天!”然后以比赛当天的日期落款。
332 0
|
前端开发 JavaScript 开发者
2016年 团体程序设计天梯赛——题解集
⭐ L1-028 判断素数 (10分) 本题题目链接 本题的目标很简单,就是判断一个给定的正整数是否素数。 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 31 的需要判断的正整数。 输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。
275 0
|
程序员
2017年 团体程序设计天梯赛——题解集
⭐L1-038 新世界 (5分) 本题题目链接👈 👈 👈 👈 👈 这道超级简单的题目没有任何输入。 你只需要在第一行中输出程序员钦定名言“Hello World”,并且在第二行中输出更新版的“Hello New World”就可以了。
422 0
高职考技能提升教程004期 字符串查找与替换 高考信息技术必备 刘金玉编程
高职考技能提升教程004期 字符串查找与替换 高考信息技术必备 刘金玉编程