高职考技能提升教程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
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- WTForm的URLXSS谈开源组件的安全性
- 谈一谈复杂的正则表达式分析
- Linux 用户名、主机添加背景色
- percona-toolkit大表操作DDL使用 2.1. 数据库字符集修改2.2. 数据库建库、授权操作2.3. 数据库建表、插入数据4.1. 添加表字段【
- PHPMailer 代码执行漏洞(CVE-2016-10033)分析(含通用POC)
- linux 平均负载 load average 的含义【转】
- zookeeper-01 概述
- zookeeper-02 部署
- zookeeper-03 命令行操作
- java连接zookeeper服务器出现“KeeperErrorCode = ConnectionLoss for ...”
- Linux 内存使用率
- CentOS7.4下编译Hadoop-2.7.6
- VMware安装CentOS6
- VMware安装CentOS7 3.1 主机名修改3.2 网卡名修改3.3 ifconfig安装
- VMware网络设置