目录
1.首先
2.环境
3. 使用的数组
4. 什么是冒泡排序?
4-1. 分拣流程
4-2. 最终代码
5. 参考
6. 最后
1.首先
我的老板曾经要求我使用“选择排序”和“冒泡排序”对数组进行排序作为家庭作业。
“排序 = 按顺序重新排列 ID 的东西”这是我的印象,所以我很惊讶有不同类型的排序和不同的处理速度。
这一次,我想根据当时的备忘录来组织冒泡排序。
▼点击这里选择排序
2.环境
- windows 10 版本 21H2
- 微软-IIS 10.0
- ASP 5.8 (16384)
3. 使用的数组
我想按升序(1,2,...,10)对下面的数组进行排序。
▼代码
'# 配列と変数の宣言
Dim arrNum : arrNum = Array(3,4,2,8,7,5,9,6,10,1)
Dim i,tmp
'# バブルソート前の配列
For i = 0 To UBound( arrNum )
tmp = join(arrNum, ",")
Next
'#カンマで結合した配列を出力
Response.Write tmp '# 3,4,2,...
UBound函数:可以得到数组索引的最大值
4.什么是冒泡排序
冒泡排序是一种重复比较和交换相邻值的简单技术。
“气泡”一词的意思是“气泡”,之所以命名为“冒泡排序”,是因为排序过程看起来就像气泡漂浮在水面上。
4-1. 分拣流程
执行冒泡排序需要做三件事:
这一次,我们将按升序(最小的顺序)排列它们。(1) 从一开始就比较相邻的元素,根据条件进行交换
② 回到开头,再次比较相邻元素,根据条件进行交换
③ 重复② 执行所有比较如果你在冒泡排序中查找它,
A:比较相邻元素
B:比较两个元素和两种模式。
这次,我将参考维基百科总结如何比较两个相邻的元素。▼ 比较两个元素的例子
▼维基百科
① 从一开始就比较相邻的值,根据条件进行交换
这一次,我们要按升序(最小的顺序)排列,所以我们会比较相邻的元素,当它们变成
左の要素>右の要素时交换它们。通过始终使右侧更大,您可以按升序排列它们。
随着你继续交换,数组的最后一个元素成为数组中的最大值并且是固定的。
② 回到开头,再次比较相邻元素,根据条件进行交换
交换后,数组的倒数第二个元素成为数组中的第二大值,并且是固定的。
'# 変数の宣言 Dim j '#要素を比較して昇順になるように交換する For i = 0 To UBound( arrNum ) - 1 For j = i + 1 To UBound( arrNum ) If arrNum(j) < arrNum(i) Then tmp = arrNum(j) arrNum(j) = arrNum(i) arrNum(i) = tmp End If Next Next交换时与选择排序相同。
这是一个准备三个盒子并替换它们以替换两个东西的图像。③ 重复② 执行所有比较
所有元素都是通过重复来固定的。
4-2. 最终代码
这是最终的代码。
<%@ Language = VBScript codepage = 65001 %> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <% Dim arrNum : arrNum = Array(3,4,2,8,7,5,9,6,10,1) Dim tmp Dim i, j '# バブルソート前 For i = 0 To UBound( arrNum ) tmp = join(arrNum, ",") Next Response.Write tmp & "<br />" '# 3,4,2,...,1 '#要素を比較して昇順になるように交換する For i = 0 To UBound( arrNum ) - 1 For j = i + 1 To UBound( arrNum ) If arrNum(j) < arrNum(i) Then tmp = arrNum(j) arrNum(j) = arrNum(i) arrNum(i) = tmp End If Next Next '# バブルソート後 For i = 0 To UBound( arrNum ) tmp = join(arrNum, ",") Next Response.Write tmp & "<br />" '# 1,2,3,...,10 %>5. 参考
6. 最后
这一次,我使用 VBScript 进行冒泡排序。排序所需的时间几乎与数据数量的平方成正比,因此是一种耗时的方法。
我将在短时间内整理排序方法,如果您能一起阅读,我将不胜感激。
如果有任何错误或意见,请告诉我。感谢您的阅读。
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308628053.html