vb 编程 对已知存在在数组中的6个数,分别采用选择法冒泡法实现从小到大的排序。
3个回答
展开全部
1、冒泡法(递增) 算法思想:(将相邻两个数比较,大的调到后头) 1)有n+1个数(存放在数组a(n)中),第一趟将每相邻两个数比较,大的调到后头,经n次两两相邻比较后,最大的数已“沉底”,放在最后一个位置,小数上升“浮起”; 2)第二趟对余下的n个数(最大的数已“沉底”)按上法比较,经n-1次两两相邻比较后得次大的数; 3)依次类推,n+1个数共进行n趟比较。
For i=0 To n - 1
For j = 0 To n-1-i
If a(j) > a(j+1) Then
temp=a(j)
a(j)=a(j+1)
a(j+1)=temp
End if
Next j
Next i‘一步一步将大的数字沉到底部
2、选择法思想: 1)对有n+1个数的序列(存放在数组a(n)中),从中选出最小(升序)或最大(降序)的数,与第1个数交换位置; 2)除第1 个数外,其余n个数中选最小或最大的数,与第2个数交换位置; 3)依次类推,选择了n次后,这个数列已按升序排列。
例:For i = 0 To n - 1
p = i
For j = i + 1 To n
If a(p) > a(j) Then
p = j
Next j
temp = a(i)
a(i) = a(p)
a(p) = temp
Next i
算法弄清楚步骤了,根据逻辑就可以写出来了^_^,望采纳(⊙o⊙)哦
For i=0 To n - 1
For j = 0 To n-1-i
If a(j) > a(j+1) Then
temp=a(j)
a(j)=a(j+1)
a(j+1)=temp
End if
Next j
Next i‘一步一步将大的数字沉到底部
2、选择法思想: 1)对有n+1个数的序列(存放在数组a(n)中),从中选出最小(升序)或最大(降序)的数,与第1个数交换位置; 2)除第1 个数外,其余n个数中选最小或最大的数,与第2个数交换位置; 3)依次类推,选择了n次后,这个数列已按升序排列。
例:For i = 0 To n - 1
p = i
For j = i + 1 To n
If a(p) > a(j) Then
p = j
Next j
temp = a(i)
a(i) = a(p)
a(p) = temp
Next i
算法弄清楚步骤了,根据逻辑就可以写出来了^_^,望采纳(⊙o⊙)哦
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询