Vb程序设计教程 排序算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

流程图(续)
* * 1==>i i<n-1? T ai<ai+1? ai与ai+1交换 True==>b * i+1==>i F
二、选择排序
处理方案:查找特殊数据,将其放到应该 的位置上。 具体操作如下: 首先查找n个数中的最大数所在的位置max 然后将max处的最大数与第一个数交换。 如此处理,每次缩小一定范围,将最大数 放置首位。直到范围缩小到只有一个数止。
1、确定初始范围,为1~n,然后将最大数 与范围内的第一个数交换,即与第1个数对换。 2、修改范围,将原范围减少一个数,即 2~n,然后将范围内的最大数调换到范围内的开 始位置。 3、如此操作,直到范围缩小到只有一个数 止。 注:某一范围内的最大数所有位置的查找 首先假设开始即为最大数,置maxpos=l; 然后对每个数据(由l+1到u)比较,如果比 maxpos处的数大,则将maxpos置当前位置。
排序算法
一、交换排序
分析: 比较任意两个相邻数据,如果排列顺序与 要求不符,则交换该两个数据。 如此操作,直到不再发生交换事件。 点评: 1)如何实现“比较”任意两个相邻数? 2)如何知道“无交换”发生? 3)“如此操作”何意?如何实现?
流程图
True==>b B? F T False==>b
比较任意两个相邻数 如果不合要求,交换 发生交换,置b为True
1、取数组指定维数的下界与上界 LBound(id,i) UBound(id,i)
Id为数组变量名,i整数。功能:取数组名为id 的第i维下界、上界。 2、重新定义数组(只对动态数组有效) ReDim 数组名(新下标) 3、数组赋值 Variant_A=Array(常量表)
4、输入 数据到数组中 Varaint_a=split(字符串,分隔符) 例:输入若干个整数,按照由小到大顺序输出 Dim a ‘定义一个Varaint变量 Dim i%,j%,t A=split(text1.text,”,”) ‘输入以,为分隔的整数 For i=lbound(a) to ubound(a) for j=i to ubound(a)-1 if a(i)>a(j) then t=a(j):a(j)=a(j+1):a(j+1)=t end if next next
三、插入排序
处理方案:假设一个已有序的数a,需要将 一个新数据x插入到a中,使用插入后仍然有序. 具体操作如下: 如果数组a中的前k个数据有序排列,则将a 之第k+1个数据插入到a之前k个数中,使之插入 后仍然有序。 k由1开始(一个数自然有序),直到k等于 n止连续地变化,就可以将a有序排列。
数组相关操作பைடு நூலகம்
相关文档
最新文档