Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2442|回复: 1

[已解决]VB解析选择排序 内循环和外循环有什么用

[复制链接]
发表于 2017-4-30 09:11 | 显示全部楼层 |阅读模式
本帖最后由 laoau138 于 2017-4-30 21:20 编辑

VB解析选择排序  内循环和外循环有什么用


10个数从小到大   用选择排序

Private Sub Command1_Click()
  Dim a(1 To 10) As Integer
  For i = 1 To 10
    a(i) = Int(100 * Rnd)
    Print a(i);
  Next i
  Print
  For i = 1 To 9         '外循环,选择排序这一句有什么用
    k = i
    For j = i + 1 To 10        '内循环,选择排序这一句有什么用  为什么要j=i+1, to  10
      If a(j) < a(k) Then k = j
    Next j
    t = a(i): a(i) = a(k): a(k) = t
  Next i
  Print "排序以后的数:"
  For i = 1 To 10
    Print a(i);
  Next i
  Print
End Sub


最佳答案
2017-4-30 18:17
本帖最后由 france723 于 2017-4-30 18:19 编辑

和我昨天说的一样的,外循环控制内循环范围。比如有十个数,外循环刚开始,把第一个数单独拿出来,然后把剩下的放进内循环(这就是为什么j=j+1 to 10), 内循环把这些数一个一个的和外循环单独拿出的数字比较,谁小谁就取代那个单独的数,然后再比较,最后得出最小的数放在前面。
然后再再通过外循环把刚刚得出最小的数字排除,剩下的取出剩下的第一个数,然后以及类推的比较
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-4-30 18:17 | 显示全部楼层    本楼为最佳答案   
本帖最后由 france723 于 2017-4-30 18:19 编辑

和我昨天说的一样的,外循环控制内循环范围。比如有十个数,外循环刚开始,把第一个数单独拿出来,然后把剩下的放进内循环(这就是为什么j=j+1 to 10), 内循环把这些数一个一个的和外循环单独拿出的数字比较,谁小谁就取代那个单独的数,然后再比较,最后得出最小的数放在前面。
然后再再通过外循环把刚刚得出最小的数字排除,剩下的取出剩下的第一个数,然后以及类推的比较

评分

参与人数 1 +9 收起 理由
laoau138 + 9 来学习

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 16:50 , Processed in 0.300854 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表