admin 管理员组

文章数量: 1184232


2024年3月27日发(作者:linux版本有哪些)

冒泡法:

(1) 从第一个元素开始,将相邻的数比较,若为逆序,

就交换,比较完一轮,最大的数已沉底,成为数组中的

最后一个元素a(n)

(2) 对a(1)和a(n-1)的n-1个数进行同(1)的操作,次

大的数放入a(n-1)中,完成第二轮排序。

(3) 进行n-1轮排序,所有的数排序完毕。

Dim a%(), i%, j%, n%

For i = 1 To n - 1

For j = 1 To n - 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

Print

For i = 1 To n

Print a(i);

Next i

顺序交换法:

(1) 从第一个元素开始,将它和其后的每个元素进行

比较,若为逆序,就交换,比较完一轮,a(1)成为数

组中的最小的元素。

(2) 对a(2)和a(n)的n-1个数进行同(1)的操作,次

小的数放入a(2)中,完成第二轮排序。

(3) 进行n-1轮排序,所有的数排序完毕。

Dim a%(), i%, j%, n%

For i = 1 To n - 1

For j = i + 1 To n

If a(i) > a(j) Then

t = a(i): a(i) = a(j): a(j) = t

End If

Next j

Next i

选择法

(1) 从n个数的序列中选出最小的数,与第1个数交换

位置;

(2) 除第1个数外,其余n-1个数再按(1)的方法选出

次小的数,与第2个数交换位置;

(3) 重复(1)n-1遍,最后构成递增序列。

Dim a%(), i%, j%, n%

For i = 1 To n – 1

k=i

For j = i + 1 To n

If a(j) < a(k) Then k=j

Next j

if k<>i then t=a(i): a(i)=a(k): a(k)=t

Next i

插入法:

1. 找到插入数在数组中的位置i

2. 将从n到i的每个元素向后移动一个位置

3. 插入数

插入法1:将一个数插入到有序数列,使插入后数列仍然有序

Dim a(1 To 10) As Integer

Key = Val(InputBox("输入一个数"))

For i=1 to 9

If a(i)>Key Then Exit For

next i

For k = 9 To i Step -1

a(k + 1) = a(k)

Next k

a(i) = Key

插入法2: 用上面的插入方法将一批数排序(从小到大),设数

列中开始只有一个元素。

Dim x(1 To 10) As Integer

For i = 1 To 9

Key = x(i + 1)

j = 1

Do While (Key >= x(j) And j <= i)

j = j + 1

Loop

For k = i To j Step -1

x(k + 1) = x(k)

Next k

x(j) = Key

Next i


本文标签: 元素 个数 排序 数组 插入