目录

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)对下面的数组进行排序。

【VBScript】ソート方法を整理する(バブルソート編)

▼代码

'# 配列と変数の宣言
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.什么是冒泡排序

什么是冒泡排序(基本交换方法)?引自

冒泡排序是一种重复比较和交换相邻值的简单技术。

“气泡”一词的意思是“气泡”,之所以命名为“冒泡排序”,是因为排序过程看起来就像气泡漂浮在水面上。

【VBScript】ソート方法を整理する(バブルソート編)

4-1. 分拣流程

执行冒泡排序需要做三件事:
这一次,我们将按升序(最小的顺序)排列它们。

(1) 从一开始就比较相邻的元素,根据条件进行交换
② 回到开头,再次比较相邻元素,根据条件进行交换
③ 重复② 执行所有比较

如果你在冒泡排序中查找它,

A:比较相邻元素
B:比较两个元素

和两种模式。
这次,我将参考维基百科总结如何比较两个相邻的元素。

▼ 比较两个元素的例子

▼维基百科

① 从一开始就比较相邻的值,根据条件进行交换

这一次,我们要按升序(最小的顺序)排列,所以我们会比较相邻的元素,当它们变成左の要素>右の要素时交换它们。

【VBScript】ソート方法を整理する(バブルソート編)

通过始终使右侧更大,您可以按升序排列它们。

随着你继续交换,数组的最后一个元素成为数组中的最大值并且是固定的。

② 回到开头,再次比较相邻元素,根据条件进行交换

交换后,数组的倒数第二个元素成为数组中的第二大值,并且是固定的。

'# 変数の宣言
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

交换时与选择排序相同。
这是一个准备三个盒子并替换它们以替换两个东西的图像。

【VBScript】ソート方法を整理する(バブルソート編)

③ 重复② 执行所有比较

所有元素都是通过重复来固定的。

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

相关文章:

  • 2021-06-20
  • 2021-06-12
  • 2021-12-02
猜你喜欢
  • 2021-09-22
  • 2021-12-05
  • 2021-10-15
  • 2021-10-16
相关资源
相似解决方案