加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

两种常见排序算法

发布时间:2020-12-17 08:11:50 所属栏目:百科 来源:网络整理
导读:上次米老师上课,讲那个排序找最大的例子,他当场让我们用语言描述或是写代码,可是描述完全的人没有几个。想想为什么学了那么长时间的VB却连一个小例子都不能完整写出来。就是缺乏知识总结,就像米老师说的,每次听完课,感觉自己懂了,不去总结,导致懂的

上次米老师上课,讲那个排序找最大的例子,他当场让我们用语言描述或是写代码,可是描述完全的人没有几个。想想为什么学了那么长时间的VB却连一个小例子都不能完整写出来。就是缺乏知识总结,就像米老师说的,每次听完课,感觉自己懂了,不去总结,导致懂的那一点点也不懂了。
昨晚,翻开书看看那个例子,看到排序的两种方法:选择排序和冒泡排序,米老师以前上课讲过这两种排序,但是听过了没总结,导致自己又花时间重新看了这个。这次要好好总结了。
以产生不相等的10个整数且从大到小排序为例。


选择排序
整体思路:
1.定义一个数组a()用来盛放这10个数

2.找10个数里的最大值,依次与剩下的9个数进行比较,将最大的放在a(1).

3.在剩下的9个数里找最大,依次与剩下的8个数进行比较,将最大值放在a(2).

4.按照这样一直比较下去.

5.最后一轮就剩下两个数比较大小,将大数放在a(9).小数放在a(10).这样10个数就排序完成了。

代码:

'从大到小排序

Dim a() As Integer

For i = 1 To 9 '比较大小
For j = i + 1 To 10
If a(i) < a(j) Then
t = a(i): a(i) = a(j): a(j) = t '进行交换
End If
Next j
Next i


冒泡排序

整体思路:
1.定义一个数组a()用来盛放这10个数

2.两个相邻的数进行比较,大数前移,小数后移。
3.继续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
4.每进行一轮,将产生一个最小值,第一轮最小值放在a(10),第二轮最小值放在a(9),依次进行下去,10个数就从大到小排序了。

代码:
Dim a() As Integer

For i = 1 To 9'比较大小 For j = 1 To 10 - i If a(j) < a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t End If Next j Next i

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读